[ooo-build-commit] distro-configs/CrossWin32.conf.in patches/dev300

Fridrich Strba fridrich at kemper.freedesktop.org
Mon Jul 13 04:22:21 PDT 2009


 distro-configs/CrossWin32.conf.in                  |    4 
 patches/dev300/apply                               |    3 
 patches/dev300/crosswin32-desktop-mingw.diff       |  316 ++
 patches/dev300/crosswin32-dtrans-mingw.diff        |   13 
 patches/dev300/crosswin32-embedserv-mingw.diff     |    2 
 patches/dev300/crosswin32-fpicker-mingw.diff       |   72 
 patches/dev300/crosswin32-i18npool-cross.diff      |    4 
 patches/dev300/crosswin32-scp2-mingw.diff          |    6 
 patches/dev300/crosswin32-shell-mingw.diff         |   27 
 patches/dev300/crosswin32-solenv-mingw.diff        |  123 
 patches/dev300/crosswin32-ugly-hacks.diff          | 2681 +++++++++++++++++++++
 patches/dev300/crosswin32-unixodbc-disable.diff    |   13 
 patches/dev300/crosswin32-vcl-mingw.diff           |  177 +
 patches/dev300/crosswin32-writerperfect-cross.diff |   11 
 14 files changed, 3389 insertions(+), 63 deletions(-)

New commits:
commit 7c32468a370188f379313c9f56d92c43b83f4bb4
Author: Jesús Corrius <jesus at softcatala.org>
Date:   Sun Jul 12 08:05:08 2009 +0200

    Several new fixes for crosscompiling
    
    * distro-configs/CrossWin32.conf.in:
    * patches/dev300/apply:
    * patches/dev300/crosswin32-desktop-mingw.diff:
    * patches/dev300/crosswin32-dtrans-mingw.diff:
    * patches/dev300/crosswin32-embedserv-mingw.diff:
    * patches/dev300/crosswin32-fpicker-mingw.diff:
    * patches/dev300/crosswin32-i18npool-cross.diff:
    * patches/dev300/crosswin32-scp2-mingw.diff:
    * patches/dev300/crosswin32-shell-mingw.diff:
    * patches/dev300/crosswin32-solenv-mingw.diff:
    * patches/dev300/crosswin32-ugly-hacks.diff:
    * patches/dev300/crosswin32-unixodbc-disable.diff:
    * patches/dev300/crosswin32-vcl-mingw.diff:
    * patches/dev300/crosswin32-writerperfect-cross.diff:

diff --git a/distro-configs/CrossWin32.conf.in b/distro-configs/CrossWin32.conf.in
index 270f296..cd990fb 100644
--- a/distro-configs/CrossWin32.conf.in
+++ b/distro-configs/CrossWin32.conf.in
@@ -27,3 +27,7 @@
 --with-system-neon
 --with-system-poppler
 --with-system-lpsolve
+--with-system-cairo
+--with-system-libwpd 
+--with-system-libwpg 
+--with-system-libwps
\ No newline at end of file
diff --git a/patches/dev300/apply b/patches/dev300/apply
index 1fa751f..6f43f6a 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -3282,6 +3282,7 @@ crosswin32-dbaccess-mingw.diff
 crosswin32-desktop-mingw.diff
 crosswin32-dtrans-mingw.diff
 crosswin32-embeddedobj-mingw.diff
+crosswin32-embedserv-mingw.diff
 crosswin32-extensions-mingw.diff
 crosswin32-external-mingwheaders.diff
 crosswin32-fpicker-mingw.diff
@@ -3295,6 +3296,7 @@ crosswin32-icc-cross.diff
 crosswin32-instsetoo_native-mingw.diff
 crosswin32-lingucomponent-mingw.diff
 crosswin32-o3tl-no-cppunit.diff
+crosswin32-unixodbc-disable.diff
 crosswin32-odk-cross.diff
 crosswin32-postprocess-mingw.diff
 crosswin32-pyuno-mingw.diff
@@ -3318,6 +3320,7 @@ crosswin32-tools-mingw.diff
 crosswin32-trans-mingw.diff
 crosswin32-unotools-mingw.diff
 crosswin32-vcl-mingw.diff
+crosswin32-writerperfect-cross.diff
 # things to fix later
 crosswin32-ugly-hacks.diff
 
diff --git a/patches/dev300/crosswin32-desktop-mingw.diff b/patches/dev300/crosswin32-desktop-mingw.diff
index 54f76c6..2a51515 100644
--- a/patches/dev300/crosswin32-desktop-mingw.diff
+++ b/patches/dev300/crosswin32-desktop-mingw.diff
@@ -71,32 +71,164 @@
  
 --- desktop/util/verinfo.rc.~1.19.12.1.~	2008-09-19 09:30:39.000000000 +0200
 +++ desktop/util/verinfo.rc	2008-11-05 15:04:37.000000000 +0100
-@@ -149,7 +149,11 @@ VS_VERSION_INFO versioninfo
+@@ -82,16 +82,16 @@
+ // 				version information
+ // -----------------------------------------------------------------------
+ 
+-VS_VERSION_INFO versioninfo
++VS_VERSION_INFO VERSIONINFO
+ #ifndef SUBVERSION
+-	fileversion    VERSION, 0, 0, VERVARIANT
+-	productversion VERSION, 0, 0, VERVARIANT
++	FILEVERSION    VERSION, 0, 0, VERVARIANT
++	PRODUCTVERSION VERSION, 0, 0, VERVARIANT
+ #else
+-	fileversion    VERSION, VERVARIANT, VER_COUNT
+-	productversion VERSION, VERVARIANT, VER_COUNT
++	FILEVERSION    VERSION, VERVARIANT, VER_COUNT
++	PRODUCTVERSION VERSION, VERVARIANT, VER_COUNT
+ #endif
+-	fileflagsmask 0x3F
+-	fileflags
++	FILEFLAGSMASK 0x3F
++	FILEFLAGS
+ #if defined(DEBUG)
+ 	VS_FF_DEBUG |
+ #endif
+@@ -100,47 +100,47 @@
+ #endif
+ 	0
+ #ifndef WIN32
+-	fileos VOS_DOS_WINDOWS16
++	FILEOS VOS_DOS_WINDOWS16
+ #else
+-	fileos VOS_NT_WINDOWS32
++	FILEOS VOS_NT_WINDOWS32
+ #endif
+-	filetype VFT_APP
++	FILETYPE VFT_APP
+ 	{
+-		block "StringFileInfo"
++		BLOCK "StringFileInfo"
+ 		{
+ #ifdef LG_D
+-			block "040704E4"
++			BLOCK "040704E4"
+ 			{
+ 				// German StringTable
+-				value "CompanyName",		"Sun Microsystems, Inc.\0"
+-				value "FileDescription", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
+-				value "FileVersion",		PPS(VER_LEVEL) "\0"
+-				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+-				value "OriginalFilename",	"SOFFICE.EXE\0"
+-				value "InternalName",		"SOFFICE\0"
+-				value "LegalCopyright",		S_CRIGHT " Sun Microsystems, Inc.\0"
++				VALUE "CompanyName",		"Sun Microsystems, Inc.\0"
++				VALUE "FileDescription", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
++				VALUE "FileVersion",		PPS(VER_LEVEL) "\0"
++				VALUE "ProductVersion",		PPS(VER_LEVEL) "\0"
++				VALUE "OriginalFilename",	"SOFFICE.EXE\0"
++				VALUE "InternalName",		"SOFFICE\0"
++				VALUE "LegalCopyright",		S_CRIGHT " Sun Microsystems, Inc.\0"
+ 			}
+ #else
+-			block "040904E4"
++			BLOCK "040904E4"
+ 			{
+ 				// International StringTable
+-				value "CompanyName", 		"Sun Microsystems, Inc.\0"
+-				value "FileDescription",	"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
+-				value "FileVersion",		PPS(VER_LEVEL) "\0"
+-				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+-				value "OriginalFilename",	"SOFFICE.EXE\0"
+-				value "InternalName", 		"SOFFICE\0"
+-				value "LegalCopyright", 	S_CRIGHT " Sun Microsystems, Inc.\0"
++				VALUE "CompanyName", 		"Sun Microsystems, Inc.\0"
++				VALUE "FileDescription",	"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
++				VALUE "FileVersion",		PPS(VER_LEVEL) "\0"
++				VALUE "ProductVersion",		PPS(VER_LEVEL) "\0"
++				VALUE "OriginalFilename",	"SOFFICE.EXE\0"
++				VALUE "InternalName", 		"SOFFICE\0"
++				VALUE "LegalCopyright", 	S_CRIGHT " Sun Microsystems, Inc.\0"
+ 			}
+ #endif
+ 		}
+ 
+-		block "VarFileInfo"
++		BLOCK "VarFileInfo"
+ 		{
+ #ifdef LG_D
+-			value "Translation", 0x0407, 1252
++			VALUE "Translation", 0x0407, 1252
+ #else
+-			value "Translation", 0x0409, 1252
++			VALUE "Translation", 0x0409, 1252
+ #endif
+ 		}
+ 	}
+@@ -149,10 +149,14 @@
  VS_VERSION_INFO rcdata
  {
  	0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY,
 +#ifndef CROSS_COMPILING
  	VERSION, VERVARIANT, VER_COUNT
+-};
+-
 +#else
 +	VERSION
 +#endif
- };
- 
++}
  
---- desktop/util/ooverinfo.rc.~1.12.12.1.~	2008-09-19 09:30:16.000000000 +0200
-+++ desktop/util/ooverinfo.rc	2008-11-05 15:07:54.000000000 +0100
-@@ -144,7 +144,11 @@ VS_VERSION_INFO versioninfo
- VS_VERSION_INFO rcdata
- {
- 	0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY,
-+#ifndef CROSS_COMPILING
- 	VERSION, SUBVERSION, VERVARIANT, VER_COUNT
++#ifdef CROSS_COMPILING
+ 2 ICON "icons\\so9_writer_doc.ico"
+ 3 ICON "icons\\so9_writer_tem.ico"
+ 4 ICON "icons\\so9_calc_doc.ico"
+@@ -192,3 +196,44 @@
+ 38 ICON "icons\\so7-base-doc.ico"
+ 39 ICON "icons\\so7-math-doc.ico"
+ 40 ICON "icons\\oxt-extension.ico"
 +#else
-+	VERSION
++2 ICON "icons/so9_writer_doc.ico"
++3 ICON "icons/so9_writer_tem.ico"
++4 ICON "icons/so9_calc_doc.ico"
++5 ICON "icons/so9_calc_tem.ico"
++6 ICON "icons/so9_draw_doc.ico"
++7 ICON "icons/so9_draw_tem.ico"
++8 ICON "icons/so9_impress_doc.ico"
++9 ICON "icons/so9_impress_tem.ico"
++10 ICON "icons/so9_impress_doc.ico"
++11 ICON "icons/so9_global_doc.ico"
++12 ICON "icons/so9_html_doc.ico"
++13 ICON "icons/so9_chart_doc.ico"
++14 ICON "icons/so9_base_doc.ico"
++15 ICON "icons/so9_math_doc.ico"
++16 ICON "icons/so9_empty_tem.ico"
++17 ICON "icons/so9_macro_doc.ico"
++18 ICON "icons/so8-configuration.ico"
++19 ICON "icons/so8-open.ico"
++20 ICON "icons/so8-image-doc.ico"
++21 ICON "icons/so9_writer_app.ico"
++22 ICON "icons/so9_calc_app.ico"
++23 ICON "icons/so9_draw_app.ico"
++24 ICON "icons/so9_impress_app.ico"
++25 ICON "icons/so9_math_app.ico"
++26 ICON "icons/so9_base_app.ico"
++27 ICON "icons/so9_empty_doc.ico"
++28 ICON "icons/so7-writer-doc.ico"
++29 ICON "icons/so7-writer-tem.ico"
++30 ICON "icons/so7-calc-doc.ico"
++31 ICON "icons/so7-calc-tem.ico"
++32 ICON "icons/so7-draw-doc.ico"
++33 ICON "icons/so7-draw-tem.ico"
++34 ICON "icons/so7-impress-doc.ico"
++35 ICON "icons/so7-impress-tem.ico"
++36 ICON "icons/so7-master-doc.ico"
++37 ICON "icons/so7-chart-doc.ico"
++38 ICON "icons/so7-base-doc.ico"
++39 ICON "icons/so7-math-doc.ico"
++40 ICON "icons/oxt-extension.ico"
 +#endif
- };
- 
- 
+
 --- desktop/source/pkgchk/unopkg/makefile.mk.~1.17.~	2008-07-22 19:16:08.000000000 +0200
 +++ desktop/source/pkgchk/unopkg/makefile.mk	2008-11-05 14:58:45.000000000 +0100
 @@ -55,7 +55,7 @@ APP1STDLIBS = $(SALLIB) $(UNOPKGAPPLIB)
@@ -119,7 +251,7 @@
  .ENDIF
 --- desktop/source/deployment/misc/dp_misc.cxx.pristine	2009-04-06 12:16:26.807994125 +0200
 +++ desktop/source/deployment/misc/dp_misc.cxx	2009-04-06 12:16:33.664089092 +0200
-@@ -55,7 +55,7 @@
+@@ -55,6 +55,6 @@
  #define UNICODE
  #define _UNICODE
  #define WIN32_LEAN_AND_MEAN
@@ -127,4 +259,156 @@
 +#include <windows.h>
  //#include "tools/postwin.h"
  #endif
+--- desktop/util/ooverinfo.rc.orig	2009-07-07 16:49:16.000000000 +0200
++++ desktop/util/ooverinfo.rc	2009-07-07 16:54:34.000000000 +0200
+@@ -82,11 +82,11 @@
+ // 				version information
+ // -----------------------------------------------------------------------
  
+-VS_VERSION_INFO versioninfo
+-	fileversion    VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+-	productversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+-	fileflagsmask 0x3F
+-	fileflags
++VS_VERSION_INFO VERSIONINFO
++	FILEVERSION    VERSION, SUBVERSION, VERVARIANT, VER_COUNT
++	PRODUCTVERSION VERSION, SUBVERSION, VERVARIANT, VER_COUNT
++	FILEFLAGSMASK 0x3F
++	FILEFLAGS
+ #if defined(DEBUG)
+ 	VS_FF_DEBUG |
+ #endif
+@@ -95,47 +95,47 @@
+ #endif
+ 	0
+ #ifndef WIN32
+-	fileos VOS_DOS_WINDOWS16
++	FILEOS VOS_DOS_WINDOWS16
+ #else
+-	fileos VOS_NT_WINDOWS32
++	FILEOS VOS_NT_WINDOWS32
+ #endif
+-	filetype VFT_APP
++	FILETYPE VFT_APP
+ 	{
+-		block "StringFileInfo"
++		BLOCK "StringFileInfo"
+ 		{
+ #ifdef LG_D
+-			block "040704E4"
++			BLOCK "040704E4"
+ 			{
+ 				// German StringTable
+-				value "CompanyName",		"OpenOffice.org\0"
+-				value "FileDescription", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
+-				value "FileVersion",		PPS(VER_LEVEL) "\0"
+-				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+-				value "OriginalFilename",	"SOFFICE.EXE\0"
+-				value "InternalName",		"SOFFICE\0"
+-				value "LegalCopyright",		S_CRIGHT " Sun Microsystems, Inc.\0"
++				VALUE "CompanyName",		"OpenOffice.org\0"
++				VALUE "FileDescription", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
++				VALUE "FileVersion",		PPS(VER_LEVEL) "\0"
++				VALUE "ProductVersion",		PPS(VER_LEVEL) "\0"
++				VALUE "OriginalFilename",	"SOFFICE.EXE\0"
++				VALUE "InternalName",		"SOFFICE\0"
++				VALUE "LegalCopyright",		S_CRIGHT " Sun Microsystems, Inc.\0"
+ 			}
+ #else
+-			block "040904E4"
++			BLOCK "040904E4"
+ 			{
+ 				// International StringTable
+-				value "CompanyName", 		"OpenOffice.org\0"
+-				value "FileDescription",	"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
+-				value "FileVersion",		PPS(VER_LEVEL) "\0"
+-				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+-				value "OriginalFilename",	"SOFFICE.EXE\0"
+-				value "InternalName", 		"SOFFICE\0"
+-				value "LegalCopyright", 	S_CRIGHT " Sun Microsystems, Inc.\0"
++				VALUE "CompanyName", 		"OpenOffice.org\0"
++				VALUE "FileDescription",	"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
++				VALUE "FileVersion",		PPS(VER_LEVEL) "\0"
++				VALUE "ProductVersion",		PPS(VER_LEVEL) "\0"
++				VALUE "OriginalFilename",	"SOFFICE.EXE\0"
++				VALUE "InternalName", 		"SOFFICE\0"
++				VALUE "LegalCopyright", 	S_CRIGHT " Sun Microsystems, Inc.\0"
+ 			}
+ #endif
+ 		}
+ 
+-		block "VarFileInfo"
++		BLOCK "VarFileInfo"
+ 		{
+ #ifdef LG_D
+-			value "Translation", 0x0407, 1252
++			VALUE "Translation", 0x0407, 1252
+ #else
+-			value "Translation", 0x0409, 1252
++			VALUE "Translation", 0x0409, 1252
+ #endif
+ 		}
+ 	}
+@@ -144,10 +144,14 @@
+ VS_VERSION_INFO rcdata
+ {
+ 	0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY,
++#ifndef CROSS_COMPILING
+ 	VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+-};
+-
++#else
++	VERSION
++#endif
++}
+ 
++#ifdef CROSS_COMPILING
+ 2 ICON "icons\\ooo3_writer_doc.ico"
+ 3 ICON "icons\\ooo3_writer_tem.ico"
+ 4 ICON "icons\\ooo3_calc_doc.ico"
+@@ -187,4 +191,44 @@
+ 38 ICON "icons\\ooo11-base-doc.ico"
+ 39 ICON "icons\\ooo11-math-doc.ico"
+ 40 ICON "icons\\oxt-extension.ico"
+-
++#else
++2 ICON "icons/ooo3_writer_doc.ico"
++3 ICON "icons/ooo3_writer_tem.ico"
++4 ICON "icons/ooo3_calc_doc.ico"
++5 ICON "icons/ooo3_calc_tem.ico"
++6 ICON "icons/ooo3_draw_doc.ico"
++7 ICON "icons/ooo3_draw_tem.ico"
++8 ICON "icons/ooo3_impress_doc.ico"
++9 ICON "icons/ooo3_impress_tem.ico"
++10 ICON "icons/ooo3_impress_doc.ico"
++11 ICON "icons/ooo3_global_doc.ico"
++12 ICON "icons/ooo3_html_doc.ico"
++13 ICON "icons/ooo3_chart_doc.ico"
++14 ICON "icons/ooo3_base_doc.ico"
++15 ICON "icons/ooo3_math_doc.ico"
++16 ICON "icons/ooo3_empty_tem.ico"
++17 ICON "icons/ooo3_macro_doc.ico"
++18 ICON "icons/ooo-configuration.ico"
++19 ICON "icons/ooo-open.ico"
++20 ICON "icons/ooo-image-doc.ico"
++21 ICON "icons/ooo3_writer_app.ico"
++22 ICON "icons/ooo3_calc_app.ico"
++23 ICON "icons/ooo3_draw_app.ico"
++24 ICON "icons/ooo3_impress_app.ico"
++25 ICON "icons/ooo3_math_app.ico"
++26 ICON "icons/ooo3_base_app.ico"
++27 ICON "icons/ooo3_empty_doc.ico"
++28 ICON "icons/ooo11-writer-doc.ico"
++29 ICON "icons/ooo11-writer-tem.ico"
++30 ICON "icons/ooo11-calc-doc.ico"
++31 ICON "icons/ooo11-calc-tem.ico"
++32 ICON "icons/ooo11-draw-doc.ico"
++33 ICON "icons/ooo11-draw-tem.ico"
++34 ICON "icons/ooo11-impress-doc.ico"
++35 ICON "icons/ooo11-impress-tem.ico"
++36 ICON "icons/ooo11-master-doc.ico"
++37 ICON "icons/ooo11-chart-doc.ico"
++38 ICON "icons/ooo11-base-doc.ico"
++39 ICON "icons/ooo11-math-doc.ico"
++40 ICON "icons/oxt-extension.ico"
++#endif
diff --git a/patches/dev300/crosswin32-dtrans-mingw.diff b/patches/dev300/crosswin32-dtrans-mingw.diff
index 765cd68..b1e2eb2 100644
--- a/patches/dev300/crosswin32-dtrans-mingw.diff
+++ b/patches/dev300/crosswin32-dtrans-mingw.diff
@@ -244,19 +244,6 @@
  #include <oleidl.h>
  
  #include <systools/win32/comtools.hxx>
-@@ -129,8 +130,10 @@ public:
-     virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw (RuntimeException);
-     virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(  ) throw (RuntimeException);
- 
--
--
-+#ifdef __MINGW32__
-+#undef STDMETHODCALLTYPE
-+#define STDMETHODCALLTYPE
-+#endif /* __MINGW32__ */
- 	virtual HRESULT STDMETHODCALLTYPE QueryInterface(
-             /* [in] */ REFIID riid,
-             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
 --- dtrans/source/win32/dnd/source.cxx.pristine	2008-10-29 20:59:32.000000000 +0100
 +++ dtrans/source/win32/dnd/source.cxx	2008-10-29 21:08:39.000000000 +0100
 @@ -262,7 +262,7 @@ HRESULT STDMETHODCALLTYPE DragSource::Qu
diff --git a/patches/dev300/crosswin32-embedserv-mingw.diff b/patches/dev300/crosswin32-embedserv-mingw.diff
index 008d100..900e449 100644
--- a/patches/dev300/crosswin32-embedserv-mingw.diff
+++ b/patches/dev300/crosswin32-embedserv-mingw.diff
@@ -1,5 +1,5 @@
 --- embedserv/source/inprocserv/makefile.mk.orig	2009-06-30 17:42:56.000000000 +0200
-+++ embedserv/source/inprocservmakefile.mk	2009-06-30 17:46:33.000000000 +0200
++++ embedserv/source/inprocserv/makefile.mk	2009-06-30 17:46:33.000000000 +0200
 @@ -57,12 +57,19 @@
  	$(SLO)$/inprocembobj.obj
  
diff --git a/patches/dev300/crosswin32-fpicker-mingw.diff b/patches/dev300/crosswin32-fpicker-mingw.diff
index 10cef1e..215469e 100644
--- a/patches/dev300/crosswin32-fpicker-mingw.diff
+++ b/patches/dev300/crosswin32-fpicker-mingw.diff
@@ -259,3 +259,75 @@
  
  //-----------------------------------------------------------------------------
  // namespace
+--- fpicker/source/win32/filepicker/Fps.rc.orig	2009-07-06 16:22:12.000000000 +0200
++++ fpicker/source/win32/filepicker/Fps.rc	2009-07-06 16:22:22.000000000 +0200
+@@ -379,45 +379,45 @@
+ 
+ 1000 DLGINIT
+ BEGIN
+-    107, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3520, 0x322e, "\000" 
+-    107, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3420, 0x302e, "\000" 
+-    107, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3320, 0x302e, "\000" 
++    107, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3520, 0x322e, "\000",
++    107, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3420, 0x302e, "\000",
++    107, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3320, 0x302e, "\000",
+     0
+ END
+ 
+ 1001 DLGINIT
+ BEGIN
+-    107, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3520, 0x322e, "\000" 
+-    107, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3420, 0x302e, "\000" 
+-    107, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3320, 0x302e, "\000" 
++    107, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3520, 0x322e, "\000",
++    107, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3420, 0x302e, "\000",
++    107, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3320, 0x302e, "\000",
+     0
+ END
+ 
+ 3000 DLGINIT
+ BEGIN
+-    108, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3520, 0x322e, "\000" 
+-    108, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3420, 0x302e, "\000" 
+-    108, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3320, 0x302e, "\000" 
++    108, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3520, 0x322e, "\000",
++    108, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3420, 0x302e, "\000",
++    108, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3320, 0x302e, "\000",
+     0
+ END
+ 
+ 3001 DLGINIT
+ BEGIN
+-    108, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3520, 0x322e, "\000" 
+-    108, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3420, 0x302e, "\000" 
+-    108, 0x403, 15, 0
+-0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3320, 0x302e, "\000" 
++    108, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3520, 0x322e, "\000",
++    108, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3420, 0x302e, "\000",
++    108, 0x403, 15, 0,
++0x7453, 0x7261, 0x7257, 0x7469, 0x7265, 0x3320, 0x302e, "\000",
+     0
+ END
+ 
diff --git a/patches/dev300/crosswin32-i18npool-cross.diff b/patches/dev300/crosswin32-i18npool-cross.diff
index 68bf4cb..df8872c 100644
--- a/patches/dev300/crosswin32-i18npool-cross.diff
+++ b/patches/dev300/crosswin32-i18npool-cross.diff
@@ -29,8 +29,8 @@ i18npool/source/localedata/data/makefile.mk
  
 +.IF "$(CROSS_COMPILING)" == "no"
 +SAXPARSER = $(BIN)$/saxparser$(EXECPOST)
-+.ELSE # "$(CROSS_COMPILING)" == "yes"
-+SAXPARSER = $(TOOLS_DIR)/saxparser
++.ELSE # "$(CROSS_COMPILING)" == "yes
++SAXPARSER = wine $(BIN)$/saxparser$(EXECPOST)
 +.ENDIF # "$(CROSS_COMPILING)" == "yes"
 +
  $(MISC)$/localedata_%.cxx : %.xml
diff --git a/patches/dev300/crosswin32-scp2-mingw.diff b/patches/dev300/crosswin32-scp2-mingw.diff
index fc7c750..ea735b1 100644
--- a/patches/dev300/crosswin32-scp2-mingw.diff
+++ b/patches/dev300/crosswin32-scp2-mingw.diff
@@ -222,10 +222,10 @@ scp2/source/ooo/windowscustomaction_ooo.scp.pristine
  WindowsCustomAction gid_Customaction_MigrateInstallPath
        Name = "MigrateInstallPath";
        Typ = "321";
-@@ -464,3 +469,4 @@
- 	Assignment1 = ("InstallExecuteSequence", "(Not Installed or ISPATCH) and Not REMOVE=\"ALL\"", "end");
+@@ -417,3 +422,4 @@
+ 	Inbinarytable = 1;
+ 	Assignment1 = ("ControlEvent", "SetupType", "Next", "DoAction", "SelectLanguage", "1", "1");
  End
- 
 +#endif /* !__CROSS__ */
 scp2/source/ooo/scpaction_ooo.scp.pristine
 --- scp2/source/ooo/scpaction_ooo.scp.pristine	2008-04-15 16:49:29.000000000 +0200
diff --git a/patches/dev300/crosswin32-shell-mingw.diff b/patches/dev300/crosswin32-shell-mingw.diff
index 2fd0536..c904ee8 100644
--- a/patches/dev300/crosswin32-shell-mingw.diff
+++ b/patches/dev300/crosswin32-shell-mingw.diff
@@ -287,7 +287,7 @@
  .INCLUDE :	set_wntx64.mk
 --- shell/source/win32/shlxthandler/res/makefile.mk.~1.8.~	2008-04-11 10:23:02.000000000 +0200
 +++ shell/source/win32/shlxthandler/res/makefile.mk	2008-11-04 10:53:13.000000000 +0100
-@@ -63,4 +63,22 @@ ULFDIR:=.
+@@ -63,3 +63,21 @@ ULFDIR:=.
  
  $(RCFILES) : $(ULFDIR)$/shlxthdl.ulf makefile.mk rcfooter.txt rcheader.txt rctmpl.txt
      $(WRAPCMD) $(BIN)$/lngconvex.exe -ulf $(ULFDIR)$/shlxthdl.ulf -rc $(RES)$/shlxthdl.rc -rct rctmpl.txt -rch rcheader.txt -rcf rcfooter.txt
@@ -309,36 +309,21 @@
 +#	sed -i -e 's@^LANGUAGE 0x31 at LANGUAGE 0x2e@' $@
 +#	sed -i -e 's@^LANGUAGE 0x33 at LANGUAGE 0x01@' $@
 +.ENDIF #"$(CROSS_COMPILING)" == "yes"
-     
---- shell/inc/internal/infotips.hxx.~1.5.~	2008-04-11 09:43:15.000000000 +0200
+
 +++ shell/inc/internal/infotips.hxx	2008-11-03 20:54:22.000000000 +0100
-@@ -31,6 +31,12 @@
++++ shell/inc/internal/infotips.hxx	2009-07-06 14:12:35.000000000 +0200
+@@ -31,6 +31,10 @@
  #ifndef INFOTIPS_HXX_INCLUDED
  #define INFOTIPS_HXX_INCLUDED
  
 +#ifdef __MINGW32__
 +#include <oleauto.h>
-+#undef STDMETHODCALLTYPE
-+#define STDMETHODCALLTYPE
-+#endif /* __MINGW32__ */
++#endif 
 +
  #if defined _MSC_VER
  #pragma warning(push, 1)
  #pragma warning(disable:4917)
---- shell/inc/internal/propsheets.hxx.~1.6.~	2008-04-11 09:44:04.000000000 +0200
-+++ shell/inc/internal/propsheets.hxx	2008-11-04 11:20:49.000000000 +0100
-@@ -43,6 +43,11 @@
- #include <string>
- #include <memory> 
- 
-+#ifdef __MINGW32__
-+#undef STDMETHODCALLTYPE
-+#define STDMETHODCALLTYPE
-+#endif /* __MINGW32__ */
-+
- class CPropertySheet : public IShellExtInit, public IShellPropSheetExt  
- {
- public:
+
 --- shell/inc/internal/zipfile.hxx.~1.4.~	2008-04-11 09:46:04.000000000 +0200
 +++ shell/inc/internal/zipfile.hxx	2008-11-03 20:00:53.000000000 +0100
 @@ -35,7 +35,11 @@
diff --git a/patches/dev300/crosswin32-solenv-mingw.diff b/patches/dev300/crosswin32-solenv-mingw.diff
index 325a018..a32cab5 100644
--- a/patches/dev300/crosswin32-solenv-mingw.diff
+++ b/patches/dev300/crosswin32-solenv-mingw.diff
@@ -1037,3 +1037,126 @@
  .ENDIF
  	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \
  		$(APP10BASEX) $(APP10STACKN) -o $@ $(APP10OBJS) \
+--- solenv/inc/_tg_app.mk.orig	2009-07-07 16:32:29.000000000 +0200
++++ solenv/inc/_tg_app.mk	2009-07-07 16:47:25.000000000 +0200
+@@ -136,7 +136,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP1LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP1VERINFO)$(EMQ)" >> $(MISC)$/$(APP1LINKRES:b).rc
+ .ENDIF		# "$(APP1VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP1PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP1LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP1PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP1LINKRES:b).rc -o $(MISC)$/$(APP1LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP1LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -420,7 +424,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP2LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP2VERINFO)$(EMQ)" >> $(MISC)$/$(APP2LINKRES:b).rc
+ .ENDIF		# "$(APP2VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP2PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP2LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP2PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP2LINKRES:b).rc -o $(MISC)$/$(APP2LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP2LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -704,7 +712,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP3LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP3VERINFO)$(EMQ)" >> $(MISC)$/$(APP3LINKRES:b).rc
+ .ENDIF		# "$(APP3VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP3PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP3LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP3PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP3LINKRES:b).rc -o $(MISC)$/$(APP3LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP3LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -988,7 +1000,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP4LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP4VERINFO)$(EMQ)" >> $(MISC)$/$(APP4LINKRES:b).rc
+ .ENDIF		# "$(APP4VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP4PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP4LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP4PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP4LINKRES:b).rc -o $(MISC)$/$(APP4LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP4LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -1272,7 +1288,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP5LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP5VERINFO)$(EMQ)" >> $(MISC)$/$(APP5LINKRES:b).rc
+ .ENDIF		# "$(APP5VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP5PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP5LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP5PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP5LINKRES:b).rc -o $(MISC)$/$(APP5LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP5LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -1556,7 +1576,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP6LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP6VERINFO)$(EMQ)" >> $(MISC)$/$(APP6LINKRES:b).rc
+ .ENDIF		# "$(APP6VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP6PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP6LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP6PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP6LINKRES:b).rc -o $(MISC)$/$(APP6LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP6LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -1840,7 +1864,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP7LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP7VERINFO)$(EMQ)" >> $(MISC)$/$(APP7LINKRES:b).rc
+ .ENDIF		# "$(APP7VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP7PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP7LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP7PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP7LINKRES:b).rc -o $(MISC)$/$(APP7LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP7LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -2124,7 +2152,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP8LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP8VERINFO)$(EMQ)" >> $(MISC)$/$(APP8LINKRES:b).rc
+ .ENDIF		# "$(APP8VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP8PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP8LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP8PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP8LINKRES:b).rc -o $(MISC)$/$(APP8LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP8LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -2408,7 +2440,12 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP9LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP9VERINFO)$(EMQ)" >> $(MISC)$/$(APP9LINKRES:b).rc
+ .ENDIF		# "$(APP9VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP9PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP9LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP9PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP9LINKRES:b).rc -o $(MISC)$/$(APP9LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
++
+ .ENDIF			# "$(APP9LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
+@@ -2692,7 +2729,11 @@
+ 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP10LINKRES:b).rc
+ 	@-echo $(EMQ)#include  $(EMQ)"$(APP10VERINFO)$(EMQ)" >> $(MISC)$/$(APP10LINKRES:b).rc
+ .ENDIF		# "$(APP10VERINFO)" != ""
++.IF "$(CROSS_COMPILING)" == "no"
+ 	$(RC) -DWIN32 $(APP10PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP10LINKRES:b).rc
++.ELSE # "$(CROSS_COMPILING)" == "yes"
++	$(RC) -DWIN32 $(APP10PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -i $(MISC)$/$(APP10LINKRES:b).rc -o $(MISC)$/$(APP10LINKRES:b).res 
++.ENDIF # "$(CROSS_COMPILING)" == "yes"
+ .ENDIF			# "$(APP10LINKRES)" != ""
+ .IF "$(COM)" == "GCC"
+ 	@echo mingw
diff --git a/patches/dev300/crosswin32-ugly-hacks.diff b/patches/dev300/crosswin32-ugly-hacks.diff
index 53af32b..76d3e49 100644
--- a/patches/dev300/crosswin32-ugly-hacks.diff
+++ b/patches/dev300/crosswin32-ugly-hacks.diff
@@ -51,3 +51,2684 @@
      if test "$DB_VERSION_MINOR" -gt "1"; then
         AC_MSG_RESULT([OK])
         DB_VERSION=4.$DB_VERSION_MINOR
+--- redland/prj/build.lst.orig	2009-07-07 02:17:16.000000000 +0200
++++ redland/prj/build.lst	2009-07-07 02:17:32.000000000 +0200
+@@ -1,5 +1,5 @@
+ rld	redland	: sal soltools ZLIB:zlib LIBXML2:libxml2 LIBXSLT:libxslt OPENSSL:openssl NULL
+-rld	redland				usr1	-	all	rld_mkout	NULL
+-rld	redland\raptor		nmake	-	all	rld_raptor	NULL
+-rld	redland\rasqal		nmake	-	all	rld_rasqal	rld_raptor NULL
+-rld	redland\redland		nmake	-	all	rld_redland	rld_raptor rld_rasqal NULL
++#rld	redland				usr1	-	all	rld_mkout	NULL
++#rld	redland\raptor		nmake	-	all	rld_raptor	NULL
++#rld	redland\rasqal		nmake	-	all	rld_rasqal	rld_raptor NULL
++#rld	redland\redland		nmake	-	all	rld_redland	rld_raptor rld_rasqal NULL
+--- embedserv/prj/build.lst.orig	2009-07-07 02:57:45.000000000 +0200
++++ embedserv/prj/build.lst	2009-07-07 02:58:19.000000000 +0200
+@@ -1,5 +1,5 @@
+ es	embedserv	:	offuh sal cppu cppuhelper comphelper NULL
+ es	embedserv								usr1	-	w	es_mkout NULL
+ es	embedserv\source\embed					nmake	-	w	es_embed NULL
+-es	embedserv\source\inprocserv				nmake	-	w	es_inproc NULL
+-es	embedserv\util							nmake	-	w	es_util es_embed.w es_inproc.w NULL
++#es	embedserv\source\inprocserv				nmake	-	w	es_inproc NULL
++es	embedserv\util							nmake	-	w	es_inproc.w NULL
+--- setup_native/prj/build.lst	2009-07-09 14:04:18.000000000 +0200
++++ setup_native/prj/build.lst.orig	2009-07-09 14:04:04.000000000 +0200
+@@ -2,18 +2,18 @@
+ pk  setup_native                                          usr1    - all  sn_mkout NULL
+ pk  setup_native\scripts\source                           nmake   -  u   sn_source NULL
+ pk  setup_native\scripts                                  nmake   -  u   sn_scripts sn_source.u NULL
+-pk  setup_native\source\win32\customactions\tools         nmake   -  w   sn_tools NULL
+-pk  setup_native\source\win32\customactions\relnotes      nmake   -  w   sn_relnotes NULL
+-pk  setup_native\source\win32\customactions\regactivex    nmake   -  w   sn_regactivex NULL
+-pk  setup_native\source\win32\customactions\regpatchactivex nmake -  w   sn_regpatchactivex NULL
+-pk  setup_native\source\win32\customactions\reg4allmsdoc  nmake   -  w   sn_reg4allmsdoc NULL
+-pk  setup_native\source\win32\customactions\javafilter    nmake   -  w   sn_javafilter NULL
+-pk  setup_native\source\win32\customactions\quickstarter  nmake   -  w   sn_quickstarter NULL
+-pk  setup_native\source\win32\customactions\shellextensions nmake   -  w   sn_shellextensions sn_tools.w NULL
+-pk  setup_native\source\win32\customactions\indexingfilter nmake   -  w   sn_indexingfilter NULL
+-pk  setup_native\source\win32\customactions\languagepacks nmake   -  w   sn_languagepacks sn_tools.w NULL
+-pk  setup_native\source\win32\customactions\patch         nmake   -  w   sn_patch sn_languagepacks.w sn_shellextensions.w sn_quickstarter.w sn_tools.w NULL
+-pk  setup_native\source\win32\stwrapper                   nmake   -  w   sn_stwrapper NULL
++#pk  setup_native\source\win32\customactions\tools         nmake   -  w   sn_tools NULL
++#pk  setup_native\source\win32\customactions\relnotes      nmake   -  w   sn_relnotes NULL
++#pk  setup_native\source\win32\customactions\regactivex    nmake   -  w   sn_regactivex NULL
++#pk  setup_native\source\win32\customactions\regpatchactivex nmake -  w   sn_regpatchactivex NULL
++#pk  setup_native\source\win32\customactions\reg4allmsdoc  nmake   -  w   sn_reg4allmsdoc NULL
++#pk  setup_native\source\win32\customactions\javafilter    nmake   -  w   sn_javafilter NULL
++#pk  setup_native\source\win32\customactions\quickstarter  nmake   -  w   sn_quickstarter NULL
++#pk  setup_native\source\win32\customactions\shellextensions nmake   -  w   sn_shellextensions sn_tools.w NULL
++#pk  setup_native\source\win32\customactions\indexingfilter nmake   -  w   sn_indexingfilter NULL
++#pk  setup_native\source\win32\customactions\languagepacks nmake   -  w   sn_languagepacks sn_tools.w NULL
++#pk  setup_native\source\win32\customactions\patch         nmake   -  w   sn_patch sn_languagepacks.w sn_shellextensions.w sn_quickstarter.w sn_tools.w NULL
++#pk  setup_native\source\win32\stwrapper                   nmake   -  w   sn_stwrapper NULL
+ pk  setup_native\source\ulfconv                           nmake   -  all sn_ulfconv NULL
+ pk  setup_native\registry\data\org\openoffice\Office                     nmake   -  all sn_regconfig NULL
+ pk  setup_native\source\registration\com\sun\star\servicetag\resources   get     -  all sn_svctagres NULL
+--- pyuno/prj/build.lst.orig	2009-07-09 14:32:09.000000000 +0200
++++ pyuno/prj/build.lst	2009-07-09 14:32:16.000000000 +0200
+@@ -1,5 +1,5 @@
+ bgpu	pyuno	:	stoc cpputools cppuhelper bridges tools PYTHON:python NULL
+ pu	pyuno				  usr1	-	all	br_mkout NULL
+ pu	pyuno\zipcore	nmake	-	all	pu_zipcore NULL
+-pu	pyuno\source\module	nmake	-	all	pu_module NULL
+-pu	pyuno\source\loader	nmake	-	all	pu_loader pu_module NULL
++#pu	pyuno\source\module	nmake	-	all	pu_module NULL
++#pu	pyuno\source\loader	nmake	-	all	pu_loader pu_module NULL
+--- bean/prj/build.lst.orig	2009-07-09 14:37:14.000000000 +0200
++++ bean/prj/build.lst	2009-07-09 14:37:56.000000000 +0200
+@@ -1,6 +1,7 @@
+ ob	bean	:	javaunohelper sandbox jurt ridljar unoil offapi udkapi NULL
+ ob	bean\com\sun\star\comp\beans	nmake	-	all	ob_beanjava NULL
+ ob	bean\com\sun\star\beans			nmake	-	all	ob_legacybeanjava ob_beanjava NULL
+-ob	bean\native\win32				nmake	-	n	ob_beanwin32 NULL
++#ob	bean\native\win32				nmake	-	n	ob_beanwin32 NULL
+ ob	bean\native\unix				nmake	-	u	ob_beanunix NULL
+-ob  bean\util              			nmake   -   all	ob_util ob_beanjava ob_legacybeanjava ob_beanwin32.n ob_beanunix.u NULL
++#ob  bean\util              			nmake   -   all	ob_util ob_beanjava ob_legacybeanjava ob_beanwin32.n ob_beanunix.u NULL
++ob  bean\util              			nmake   -   all	ob_util ob_beanjava ob_legacybeanjava ob_beanunix.u NULL
+--- sccomp/prj/build.lst.orig	2009-07-09 14:42:23.000000000 +0200
++++ sccomp/prj/build.lst	2009-07-09 14:42:57.000000000 +0200
+@@ -1,4 +1,4 @@
+ scc	sccomp	:	offuh comphelper LPSOLVE:lpsolve tools transex3 rsc NULL
+ scc	sccomp									usr1	-	all	scc_mkout NULL
+ scc	sccomp\prj								get		-	all	scc_prj NULL
+-scc	sccomp\source\solver					nmake	-	all	scc_solver NULL
++#scc	sccomp\source\solver					nmake	-	all	scc_solver NULL
+--- testtools/prj/build.lst.orig	2009-07-09 14:55:05.000000000 +0200
++++ testtools/prj/build.lst	2009-07-09 14:55:18.000000000 +0200
+@@ -4,5 +4,5 @@
+ tt testtools\source\bridgetest\cli nmake - w,vc7 tt_cli tt_bridgetest tt_bridgetest_idl tt_inc NULL
+ tt testtools\source\bridgetest\idl nmake - all tt_bridgetest_idl tt_inc NULL
+ tt testtools\com\sun\star\comp\bridge nmake - all tt_javaTestObjs tt_bridgetest_idl tt_inc NULL
+-tt testtools\source\bridgetest\pyuno nmake - all tt_pyuno tt_bridgetest tt_inc NULL
++#tt testtools\source\bridgetest\pyuno nmake - all tt_pyuno tt_bridgetest tt_inc NULL
+ tt testtools\source\cliversioning nmake - all tt_cliver NULL
+--- testtools/source/bridgetest/makefile.mk.orig	2009-07-09 14:53:22.000000000 +0200
++++ testtools/source/bridgetest/makefile.mk	2009-07-09 14:54:20.000000000 +0200
+@@ -192,7 +192,7 @@
+         $(DLLDEST)$/bridgetest.uno$(DLLPOST) $(DLLDEST)$/cppobj.uno$(DLLPOST) \
+         $(MISC)$/$(TARGET)$/bootstrap.rdb $(SHL3TARGETN)
+     - $(MKDIR) $(@:d)
+-    cd $(DLLDEST) && $(REGCOMP) -register -br uno_types.rdb -r uno_services.rdb\
++    cd $(DLLDEST) && wine $(REGCOMP) -register -br uno_types.rdb -r uno_services.rdb\
+         -c acceptor.uno$(DLLPOST) \
+         -c bridgefac.uno$(DLLPOST) \
+         -c connector.uno$(DLLPOST) \
+@@ -203,9 +203,9 @@
+         -c stocservices.uno$(DLLPOST) \
+         -c $(SHL3TARGETN:f)
+ .IF "$(SOLAR_JAVA)" != ""
+-    $(REGCOMP) -register -br $(DLLDEST)$/uno_types.rdb -r $@ \
++    wine $(REGCOMP) -register -br $(DLLDEST)$/uno_types.rdb -r $@ \
+         -c javaloader.uno$(DLLPOST) -c javavm.uno$(DLLPOST)
+-    $(REGCOMP) -register  -br $(MISC)$/$(TARGET)$/bootstrap.rdb -r $@ -c \
++    wine $(REGCOMP) -register  -br $(MISC)$/$(TARGET)$/bootstrap.rdb -r $@ -c \
+         $(MY_LOCAL_CLASSDIR)/testComponent.jar \
+         -env:URE_INTERNAL_JAVA_DIR=$(MY_URE_INTERNAL_JAVA_DIR)
+ .ENDIF
+--- basebmp/test/makefile.mk.orig	2009-07-09 15:04:39.000000000 +0200
++++ basebmp/test/makefile.mk	2009-07-09 15:07:52.000000000 +0200
+@@ -132,6 +132,6 @@
+ 		@echo ----------------------------------------------------------
+ 		@echo - start unit test on library $(SHL1TARGETN)
+ 		@echo ----------------------------------------------------------
+-		testshl2 -sf $(mktmp ) $(SHL1TARGETN)
++		#testshl2 -sf $(mktmp ) $(SHL1TARGETN)
+ 
+ ALLTAR : unittest
+--- vcl/workben/makefile.mk.orig	2009-07-09 15:57:19.000000000 +0200
++++ vcl/workben/makefile.mk	2009-07-09 15:56:13.000000000 +0200
+@@ -147,6 +147,6 @@
+ 	rm -f $@
+ 	$(GNUCOPY) $(UNOUCRRDB) $@
+  	cd $(BIN) && \
+- 		regcomp -register -r applicat.rdb \
++ 		wine $(REGCOMP) -register -r applicat.rdb \
+  			-c i18nsearch.uno$(DLLPOST) \
+  			-c i18npool.uno$(DLLPOST)
+--- svtools/source/filter.vcl/jpeg/jpeg.cxx.orig	2009-07-09 15:59:15.000000000 +0200
++++ svtools/source/filter.vcl/jpeg/jpeg.cxx	2009-07-09 16:01:33.000000000 +0200
+@@ -123,7 +123,7 @@
+   dest->pub.free_in_buffer = BUF_SIZE;
+ }
+ 
+-extern "C" int empty_output_buffer (j_compress_ptr cinfo)
++extern "C" boolean empty_output_buffer (j_compress_ptr cinfo)
+ {
+   my_dest_ptr dest = (my_dest_ptr) cinfo->dest;
+ 
+@@ -228,7 +228,7 @@
+         return nRead;
+ }
+ 
+-extern "C" int fill_input_buffer (j_decompress_ptr cinfo)
++extern "C" boolean fill_input_buffer (j_decompress_ptr cinfo)
+ {
+   my_src_ptr src = (my_src_ptr) cinfo->src;
+   size_t nbytes;
+--- goodies/source/inv/makefile.mk.orig	2009-07-09 16:07:32.000000000 +0200
++++ goodies/source/inv/makefile.mk	2009-07-09 16:07:59.000000000 +0200
+@@ -114,7 +114,7 @@
+ 	rm -f $@
+ 	$(GNUCOPY) $(SOLARBINDIR)$/types.rdb $@
+ 	cd $(BIN) && \
+-		$(REGCOMP) -register -r applicat.rdb \
++		wine $(REGCOMP) -register -r applicat.rdb \
+ 			-c i18npool.uno$(DLLPOST)
+ 
+ # --- Def-File ---
+--- connectivity/prj/build.lst.orig	2009-07-09 16:30:59.000000000 +0200
++++ connectivity/prj/build.lst	2009-07-09 16:35:34.000000000 +0200
+@@ -7,7 +7,7 @@
+ cn  connectivity\source\cpool                       nmake   -   all cn_cpool cn_dbtools cn_inc NULL
+ cn  connectivity\source\resource                    nmake   -   all cn_res cn_inc NULL
+ cn  connectivity\source\sdbcx                       nmake   -   all cn_sdbcx cn_inc NULL
+-cn  connectivity\source\drivers\ado                 nmake   -   w   cn_ado cn_dbtools cn_inc NULL
++#cn  connectivity\source\drivers\ado                 nmake   -   w   cn_ado cn_dbtools cn_inc NULL
+ cn  connectivity\source\drivers\mozab\mozillasrc    nmake   -   all cn_mozab_mozillasrc cn_file cn_inc NULL
+ cn  connectivity\source\drivers\mozab\bootstrap     nmake   -   all cn_mozab_bootstrap cn_mozab_mozillasrc cn_inc NULL
+ cn  connectivity\source\drivers\mozab               nmake   -   all cn_mozab cn_mozab_bootstrap cn_dbtools cn_inc NULL
+@@ -16,11 +16,11 @@
+ cn  connectivity\source\drivers\evoab               nmake   -   u   cn_evoab cn_dbtools cn_file cn_inc NULL
+ cn  connectivity\source\drivers\evoab2              nmake   -   u   cn_evoab2 cn_dbtools cn_file cn_inc NULL
+ cn  connectivity\source\drivers\calc                nmake   -   all cn_calc cn_file cn_inc NULL
+-cn  connectivity\source\drivers\odbcbase            nmake   -   all cn_odbcbase cn_dbtools cn_inc NULL
+-cn  connectivity\source\drivers\odbc                nmake   -   all cn_odbc cn_odbcbase cn_inc NULL
++#cn  connectivity\source\drivers\odbcbase            nmake   -   all cn_odbcbase cn_dbtools cn_inc NULL
++#cn  connectivity\source\drivers\odbc                nmake   -   all cn_odbc cn_odbcbase cn_inc NULL
+ cn  connectivity\source\drivers\mysql               nmake   -   all cn_mysql cn_dbtools cn_inc NULL
+ cn  connectivity\source\drivers\jdbc                nmake   -   all cn_jdbc cn_dbtools cn_inc NULL
+-cn  connectivity\source\drivers\adabas              nmake   -   all cn_adabas cn_dbtools cn_odbcbase cn_inc NULL
++#cn  connectivity\source\drivers\adabas              nmake   -   all cn_adabas cn_dbtools cn_odbcbase cn_inc NULL
+ cn  connectivity\source\drivers\file                nmake   -   all cn_file cn_dbtools cn_inc NULL
+ cn  connectivity\source\drivers\flat                nmake   -   all cn_flat cn_dbtools cn_file cn_inc NULL
+ cn  connectivity\source\drivers\dbase               nmake   -   all cn_dbase cn_dbtools cn_file cn_inc NULL
+--- helpcontent2/prj/build.lst.orig	2009-07-09 17:25:02.000000000 +0200
++++ helpcontent2/prj/build.lst	2009-07-09 17:26:45.000000000 +0200
+@@ -53,13 +53,13 @@
+ h2	helpcontent2\source\text\swriter\04                    nmake - all helpcontent2_swri_04 helpcontent2_aux NULL
+ h2	helpcontent2\source\text\swriter\guide                 nmake - all helpcontent2_swri_guid helpcontent2_aux NULL
+ h2	helpcontent2\util                                      nmake - all helpcontent2_ut helpcontent2_aux NULL
+-h2	helpcontent2\util\sbasic                               nmake - all helpcontent2_ut_sbas helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+-h2	helpcontent2\util\schart                               nmake - all helpcontent2_ut_scha helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+-h2	helpcontent2\util\scalc                                nmake - all helpcontent2_ut_scal helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+-h2	helpcontent2\util\sdraw                                nmake - all helpcontent2_ut_sdra helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+-h2	helpcontent2\util\sdatabase                            nmake - all helpcontent2_ut_sdat helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+-h2	helpcontent2\util\shared                               nmake - all helpcontent2_ut_shar helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+-h2	helpcontent2\util\simpress                             nmake - all helpcontent2_ut_simp helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+-h2	helpcontent2\util\smath                                nmake - all helpcontent2_ut_smat helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+-h2	helpcontent2\util\swriter                              nmake - all helpcontent2_ut_swri helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\sbasic                               nmake - all helpcontent2_ut_sbas helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\schart                               nmake - all helpcontent2_ut_scha helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\scalc                                nmake - all helpcontent2_ut_scal helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\sdraw                                nmake - all helpcontent2_ut_sdra helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\sdatabase                            nmake - all helpcontent2_ut_sdat helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\shared                               nmake - all helpcontent2_ut_shar helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\simpress                             nmake - all helpcontent2_ut_simp helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\smath                                nmake - all helpcontent2_ut_smat helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
++#h2	helpcontent2\util\swriter                              nmake - all helpcontent2_ut_swri helpcontent2_aux helpcontent2_sbas_guid helpcontent2_sbas_shar helpcontent2_sbas_shar_01 helpcontent2_sbas_shar_02 helpcontent2_scal helpcontent2_scal_00 helpcontent2_scal_01 helpcontent2_scal_02 helpcontent2_scal_04 helpcontent2_scal_05 helpcontent2_scal_guid helpcontent2_scha helpcontent2_scha_00 helpcontent2_scha_01 helpcontent2_scha_02 helpcontent2_scha_04 helpcontent2_sdra helpcontent2_sdra_00 helpcontent2_sdra_01 helpcontent2_sdra_04 helpcontent2_sdra_guid helpcontent2_shar helpcontent2_shar_00 helpcontent2_shar_01 helpcontent2_shar_02 helpcontent2_shar_04 helpcontent2_shar_05 helpcontent2_shar_07 helpcontent2_shar_auko helpcontent2_shar_aupi helpcontent2_shar_expl_data helpcontent2_shar_guid helpcontent2_shar_opti helpcontent2_simp helpcontent2_simp_00 helpcontent2_simp_01 helpcontent2_simp_02 helpcontent2_simp_04 helpcontent2_simp_guid helpcontent2_smat helpcontent2_smat_00 helpcontent2_smat_01 helpcontent2_smat_02 helpcontent2_smat_04 helpcontent2_smat_guid helpcontent2_swri helpcontent2_swri_00 helpcontent2_swri_01 helpcontent2_swri_02 helpcontent2_swri_04 helpcontent2_swri_guid NULL
+ h2	helpcontent2\source\auxiliary                          nmake - all helpcontent2_aux NULL
+diff -urN zipfile.orig//crypt.h zipfile/crypt.h
+--- /dev/null	1970-01-01 01:00:00.000000000 +0100
++++ shell/source/all/zipfile/crypt.h	2009-07-09 17:22:40.000000000 +0200
+@@ -0,0 +1,132 @@
++/* crypt.h -- base code for crypt/uncrypt ZIPfile
++
++
++   Version 1.01e, February 12th, 2005
++
++   Copyright (C) 1998-2005 Gilles Vollant
++
++   This code is a modified version of crypting code in Infozip distribution
++
++   The encryption/decryption parts of this source code (as opposed to the
++   non-echoing password parts) were originally written in Europe.  The
++   whole source package can be freely distributed, including from the USA.
++   (Prior to January 2000, re-export from the US was a violation of US law.)
++
++   This encryption code is a direct transcription of the algorithm from
++   Roger Schlafly, described by Phil Katz in the file appnote.txt.  This
++   file (appnote.txt) is distributed with the PKZIP program (even in the
++   version without encryption capabilities).
++
++   If you don't need crypting in your application, just define symbols
++   NOCRYPT and NOUNCRYPT.
++
++   This code support the "Traditional PKWARE Encryption".
++
++   The new AES encryption added on Zip format by Winzip (see the page
++   http://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong
++   Encryption is not supported.
++*/
++
++#define CRC32(c, b) ((*(pcrc_32_tab+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8))
++
++/***********************************************************************
++ * Return the next byte in the pseudo-random sequence
++ */
++static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab)
++{
++    unsigned temp;  /* POTENTIAL BUG:  temp*(temp^1) may overflow in an
++                     * unpredictable manner on 16-bit systems; not a problem
++                     * with any known compiler so far, though */
++
++    temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;
++    return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
++}
++
++/***********************************************************************
++ * 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)
++{
++    (*(pkeys+0)) = CRC32((*(pkeys+0)), c);
++    (*(pkeys+1)) += (*(pkeys+0)) & 0xff;
++    (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;
++    {
++      register int keyshift = (int)((*(pkeys+1)) >> 24);
++      (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);
++    }
++    return c;
++}
++
++
++/***********************************************************************
++ * 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)
++{
++    *(pkeys+0) = 305419896L;
++    *(pkeys+1) = 591751049L;
++    *(pkeys+2) = 878082192L;
++    while (*passwd != '\0') {
++        update_keys(pkeys,pcrc_32_tab,(int)*passwd);
++        passwd++;
++    }
++}
++
++#define zdecode(pkeys,pcrc_32_tab,c) \
++    (update_keys(pkeys,pcrc_32_tab,c ^= decrypt_byte(pkeys,pcrc_32_tab)))
++
++#define zencode(pkeys,pcrc_32_tab,c,t) \
++    (t=decrypt_byte(pkeys,pcrc_32_tab), update_keys(pkeys,pcrc_32_tab,c), t^(c))
++
++#ifdef INCLUDECRYPTINGCODE_IFCRYPTALLOWED
++
++#define RAND_HEAD_LEN  12
++   /* "last resort" source for second part of crypt seed pattern */
++#  ifndef ZCR_SEED2
++#    define ZCR_SEED2 3141592654UL     /* use PI as default pattern */
++#  endif
++
++static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCrypting)
++    const char *passwd;         /* password string */
++    unsigned char *buf;         /* where to write header */
++    int bufSize;
++    unsigned long* pkeys;
++    const unsigned long* pcrc_32_tab;
++    unsigned long crcForCrypting;
++{
++    int n;                       /* index in random header */
++    int t;                       /* temporary */
++    int c;                       /* random byte */
++    unsigned char header[RAND_HEAD_LEN-2]; /* random header */
++    static unsigned calls = 0;   /* ensure different random header each time */
++
++    if (bufSize<RAND_HEAD_LEN)
++      return 0;
++
++    /* First generate RAND_HEAD_LEN-2 random bytes. We encrypt the
++     * output of rand() to get less predictability, since rand() is
++     * often poorly implemented.
++     */
++    if (++calls == 1)
++    {
++        srand((unsigned)(time(NULL) ^ ZCR_SEED2));
++    }
++    init_keys(passwd, pkeys, pcrc_32_tab);
++    for (n = 0; n < RAND_HEAD_LEN-2; n++)
++    {
++        c = (rand() >> 7) & 0xff;
++        header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t);
++    }
++    /* Encrypt random header (last two bytes is high word of crc) */
++    init_keys(passwd, pkeys, pcrc_32_tab);
++    for (n = 0; n < RAND_HEAD_LEN-2; n++)
++    {
++        buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t);
++    }
++    buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t);
++    buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t);
++    return n;
++}
++
++#endif
+diff -urN zipfile.orig//ioapi.c zipfile/ioapi.c
+--- /dev/null	1970-01-01 01:00:00.000000000 +0100
++++ shell/source/all/zipfile/ioapi.c	2009-07-09 17:22:34.000000000 +0200
+@@ -0,0 +1,177 @@
++/* ioapi.c -- IO base function header for compress/uncompress .zip
++   files using zlib + zip or unzip API
++
++   Version 1.01e, February 12th, 2005
++
++   Copyright (C) 1998-2005 Gilles Vollant
++*/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++#include "zlib.h"
++#include "ioapi.h"
++
++
++
++/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
++
++#ifndef SEEK_CUR
++#define SEEK_CUR    1
++#endif
++
++#ifndef SEEK_END
++#define SEEK_END    2
++#endif
++
++#ifndef SEEK_SET
++#define SEEK_SET    0
++#endif
++
++voidpf ZCALLBACK fopen_file_func OF((
++   voidpf opaque,
++   const char* filename,
++   int mode));
++
++uLong ZCALLBACK fread_file_func OF((
++   voidpf opaque,
++   voidpf stream,
++   void* buf,
++   uLong size));
++
++uLong ZCALLBACK fwrite_file_func OF((
++   voidpf opaque,
++   voidpf stream,
++   const void* buf,
++   uLong size));
++
++long ZCALLBACK ftell_file_func OF((
++   voidpf opaque,
++   voidpf stream));
++
++long ZCALLBACK fseek_file_func OF((
++   voidpf opaque,
++   voidpf stream,
++   uLong offset,
++   int origin));
++
++int ZCALLBACK fclose_file_func OF((
++   voidpf opaque,
++   voidpf stream));
++
++int ZCALLBACK ferror_file_func OF((
++   voidpf opaque,
++   voidpf stream));
++
++
++voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
++   voidpf opaque;
++   const char* filename;
++   int mode;
++{
++    FILE* file = NULL;
++    const char* mode_fopen = NULL;
++    if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
++        mode_fopen = "rb";
++    else
++    if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
++        mode_fopen = "r+b";
++    else
++    if (mode & ZLIB_FILEFUNC_MODE_CREATE)
++        mode_fopen = "wb";
++
++    if ((filename!=NULL) && (mode_fopen != NULL))
++        file = fopen(filename, mode_fopen);
++    return file;
++}
++
++
++uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
++   voidpf opaque;
++   voidpf stream;
++   void* buf;
++   uLong size;
++{
++    uLong ret;
++    ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
++    return ret;
++}
++
++
++uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)
++   voidpf opaque;
++   voidpf stream;
++   const void* buf;
++   uLong size;
++{
++    uLong ret;
++    ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
++    return ret;
++}
++
++long ZCALLBACK ftell_file_func (opaque, stream)
++   voidpf opaque;
++   voidpf stream;
++{
++    long ret;
++    ret = ftell((FILE *)stream);
++    return ret;
++}
++
++long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
++   voidpf opaque;
++   voidpf stream;
++   uLong offset;
++   int origin;
++{
++    int fseek_origin=0;
++    long ret;
++    switch (origin)
++    {
++    case ZLIB_FILEFUNC_SEEK_CUR :
++        fseek_origin = SEEK_CUR;
++        break;
++    case ZLIB_FILEFUNC_SEEK_END :
++        fseek_origin = SEEK_END;
++        break;
++    case ZLIB_FILEFUNC_SEEK_SET :
++        fseek_origin = SEEK_SET;
++        break;
++    default: return -1;
++    }
++    ret = 0;
++    fseek((FILE *)stream, offset, fseek_origin);
++    return ret;
++}
++
++int ZCALLBACK fclose_file_func (opaque, stream)
++   voidpf opaque;
++   voidpf stream;
++{
++    int ret;
++    ret = fclose((FILE *)stream);
++    return ret;
++}
++
++int ZCALLBACK ferror_file_func (opaque, stream)
++   voidpf opaque;
++   voidpf stream;
++{
++    int ret;
++    ret = ferror((FILE *)stream);
++    return ret;
++}
++
++void fill_fopen_filefunc (pzlib_filefunc_def)
++  zlib_filefunc_def* pzlib_filefunc_def;
++{
++    pzlib_filefunc_def->zopen_file = fopen_file_func;
++    pzlib_filefunc_def->zread_file = fread_file_func;
++    pzlib_filefunc_def->zwrite_file = fwrite_file_func;
++    pzlib_filefunc_def->ztell_file = ftell_file_func;
++    pzlib_filefunc_def->zseek_file = fseek_file_func;
++    pzlib_filefunc_def->zclose_file = fclose_file_func;
++    pzlib_filefunc_def->zerror_file = ferror_file_func;
++    pzlib_filefunc_def->opaque = NULL;
++}
+diff -urN zipfile.orig//ioapi.h zipfile/ioapi.h
+--- /dev/null	1970-01-01 01:00:00.000000000 +0100
++++ shell/source/all/zipfile/ioapi.h	2009-07-09 17:22:34.000000000 +0200
+@@ -0,0 +1,75 @@
++/* ioapi.h -- IO base function header for compress/uncompress .zip
++   files using zlib + zip or unzip API
++
++   Version 1.01e, February 12th, 2005
++
++   Copyright (C) 1998-2005 Gilles Vollant
++*/
++
++#ifndef _ZLIBIOAPI_H
++#define _ZLIBIOAPI_H
++
++
++#define ZLIB_FILEFUNC_SEEK_CUR (1)
++#define ZLIB_FILEFUNC_SEEK_END (2)
++#define ZLIB_FILEFUNC_SEEK_SET (0)
++
++#define ZLIB_FILEFUNC_MODE_READ      (1)
++#define ZLIB_FILEFUNC_MODE_WRITE     (2)
++#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)
++
++#define ZLIB_FILEFUNC_MODE_EXISTING (4)
++#define ZLIB_FILEFUNC_MODE_CREATE   (8)
++
++
++#ifndef ZCALLBACK
++
++#if (defined(WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK)
++#define ZCALLBACK CALLBACK
++#else
++#define ZCALLBACK
++#endif
++#endif
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
++typedef uLong  (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
++typedef uLong  (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
++typedef long   (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));
++typedef long   (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));
++typedef int    (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));
++typedef int    (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));
++
++typedef struct zlib_filefunc_def_s
++{
++    open_file_func      zopen_file;
++    read_file_func      zread_file;
++    write_file_func     zwrite_file;
++    tell_file_func      ztell_file;
++    seek_file_func      zseek_file;
++    close_file_func     zclose_file;
++    testerror_file_func zerror_file;
++    voidpf              opaque;
++} zlib_filefunc_def;
++
++
++
++void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def));
++
++#define ZREAD(filefunc,filestream,buf,size) ((*((filefunc).zread_file))((filefunc).opaque,filestream,buf,size))
++#define ZWRITE(filefunc,filestream,buf,size) ((*((filefunc).zwrite_file))((filefunc).opaque,filestream,buf,size))
++#define ZTELL(filefunc,filestream) ((*((filefunc).ztell_file))((filefunc).opaque,filestream))
++#define ZSEEK(filefunc,filestream,pos,mode) ((*((filefunc).zseek_file))((filefunc).opaque,filestream,pos,mode))
++#define ZCLOSE(filefunc,filestream) ((*((filefunc).zclose_file))((filefunc).opaque,filestream))
++#define ZERROR(filefunc,filestream) ((*((filefunc).zerror_file))((filefunc).opaque,filestream))
++
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
++
+diff -urN zipfile.orig//makefile.mk zipfile/makefile.mk
+--- shell/source/all/zipfile/makefile.mk.orig	2009-07-09 17:38:03.000000000 +0200
++++ shell/source/all/zipfile/makefile.mk	2009-07-09 17:17:18.000000000 +0200
+@@ -42,7 +42,9 @@
+ 
+ 
+ SLOFILES=$(SLO)$/zipfile.obj\
+-    $(SLO)$/zipexcptn.obj
++    $(SLO)$/zipexcptn.obj\
++    $(SLO)$/unzip.obj\
++    $(SLO)$/ioapi.obj
+ 
+ SLOFILES_X64=$(SLO_X64)$/zipfile.obj\
+     $(SLO_X64)$/zipexcptn.obj
+diff -urN zipfile.orig//makefile.mk.orig zipfile/makefile.mk.orig
+--- /dev/null	1970-01-01 01:00:00.000000000 +0100
++++ shell/source/all/zipfile/unzip.c	2009-07-09 17:22:27.000000000 +0200
+@@ -0,0 +1,1598 @@
++/* unzip.c -- IO for uncompress .zip files using zlib
++   Version 1.01e, February 12th, 2005
++
++   Copyright (C) 1998-2005 Gilles Vollant
++
++   Read unzip.h for more info
++*/
++
++/* Decryption code comes from crypt.c by Info-ZIP but has been greatly reduced in terms of
++compatibility with older software. The following is from the original crypt.c. Code
++woven in by Terry Thorsen 1/2003.
++*/
++/*
++  Copyright (c) 1990-2000 Info-ZIP.  All rights reserved.
++
++  See the accompanying file LICENSE, version 2000-Apr-09 or later
++  (the contents of which are also included in zip.h) for terms of use.
++  If, for some reason, all these files are missing, the Info-ZIP license
++  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
++*/
++/*
++  crypt.c (full version) by Info-ZIP.      Last revised:  [see crypt.h]
++
++  The encryption/decryption parts of this source code (as opposed to the
++  non-echoing password parts) were originally written in Europe.  The
++  whole source package can be freely distributed, including from the USA.
++  (Prior to January 2000, re-export from the US was a violation of US law.)
++ */
++
++/*
++  This encryption code is a direct transcription of the algorithm from
++  Roger Schlafly, described by Phil Katz in the file appnote.txt.  This
++  file (appnote.txt) is distributed with the PKZIP program (even in the
++  version without encryption capabilities).
++ */
++
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include "zlib.h"
++#include "unzip.h"
++
++#ifdef STDC
++#  include <stddef.h>
++#  include <string.h>
++#  include <stdlib.h>
++#endif
++#ifdef NO_ERRNO_H
++    extern int errno;
++#else
++#   include <errno.h>
++#endif
++
++
++#ifndef local
++#  define local static
++#endif
++/* compile with -Dlocal if your debugger can't find static symbols */
++
++
++#ifndef CASESENSITIVITYDEFAULT_NO
++#  if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES)
++#    define CASESENSITIVITYDEFAULT_NO
++#  endif
++#endif
++
++
++#ifndef UNZ_BUFSIZE
++#define UNZ_BUFSIZE (16384)
++#endif
++
++#ifndef UNZ_MAXFILENAMEINZIP
++#define UNZ_MAXFILENAMEINZIP (256)
++#endif
++
++#ifndef ALLOC
++# define ALLOC(size) (malloc(size))
++#endif
++#ifndef TRYFREE
++# define TRYFREE(p) {if (p) free(p);}
++#endif
++
++#define SIZECENTRALDIRITEM (0x2e)
++#define SIZEZIPLOCALHEADER (0x1e)
++
++
++
++
++const char unz_copyright[] =
++   " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll";
++
++/* unz_file_info_interntal contain internal info about a file in zipfile*/
++typedef struct unz_file_info_internal_s
++{
++    uLong offset_curfile;/* relative offset of local header 4 bytes */
++} unz_file_info_internal;
++
++
++/* file_in_zip_read_info_s contain internal information about a file in zipfile,
++    when reading and decompress it */
++typedef struct
++{
++    char  *read_buffer;         /* internal buffer for compressed data */
++    z_stream stream;            /* zLib stream structure for inflate */
++
++    uLong pos_in_zipfile;       /* position in byte on the zipfile, for fseek*/
++    uLong stream_initialised;   /* flag set if stream structure is initialised*/
++
++    uLong offset_local_extrafield;/* offset of the local extra field */
++    uInt  size_local_extrafield;/* size of the local extra field */
++    uLong pos_local_extrafield;   /* position in the local extra field in read*/
++
++    uLong crc32;                /* crc32 of all data uncompressed */
++    uLong crc32_wait;           /* crc32 we must obtain after decompress all */
++    uLong rest_read_compressed; /* number of byte to be decompressed */
++    uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/
++    zlib_filefunc_def z_filefunc;
++    voidpf filestream;        /* io structore of the zipfile */
++    uLong compression_method;   /* compression method (0==store) */
++    uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
++    int   raw;
++} file_in_zip_read_info_s;
++
++
++/* unz_s contain internal information about the zipfile
++*/
++typedef struct
++{
++    zlib_filefunc_def z_filefunc;
++    voidpf filestream;        /* io structore of the zipfile */
++    unz_global_info gi;       /* public global information */
++    uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
++    uLong num_file;             /* number of the current file in the zipfile*/
++    uLong pos_in_central_dir;   /* pos of the current file in the central dir*/
++    uLong current_file_ok;      /* flag about the usability of the current file*/
++    uLong central_pos;          /* position of the beginning of the central dir*/
++
++    uLong size_central_dir;     /* size of the central directory  */
++    uLong offset_central_dir;   /* offset of start of central directory with
++                                   respect to the starting disk number */
++
++    unz_file_info cur_file_info; /* public info about the current file in zip*/
++    unz_file_info_internal cur_file_info_internal; /* private info about it*/
++    file_in_zip_read_info_s* pfile_in_zip_read; /* structure about the current
++                                        file if we are decompressing it */
++    int encrypted;
++#    ifndef NOUNCRYPT
++    unsigned long keys[3];     /* keys defining the pseudo-random sequence */
++    const unsigned long* pcrc_32_tab;
++#    endif
++} unz_s;
++
++
++#ifndef NOUNCRYPT
++#include "crypt.h"
++#endif
++
++/* ===========================================================================
++     Read a byte from a gz_stream; update next_in and avail_in. Return EOF
++   for end of file.
++   IN assertion: the stream s has been sucessfully opened for reading.
++*/
++
++
++local int unzlocal_getByte OF((
++    const zlib_filefunc_def* pzlib_filefunc_def,
++    voidpf filestream,
++    int *pi));
++
++local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi)
++    const zlib_filefunc_def* pzlib_filefunc_def;
++    voidpf filestream;
++    int *pi;
++{
++    unsigned char c;
++    int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
++    if (err==1)
++    {
++        *pi = (int)c;
++        return UNZ_OK;
++    }
++    else
++    {
++        if (ZERROR(*pzlib_filefunc_def,filestream))
++            return UNZ_ERRNO;
++        else
++            return UNZ_EOF;
++    }
++}
++
++
++/* ===========================================================================
++   Reads a long in LSB order from the given gz_stream. Sets
++*/
++local int unzlocal_getShort OF((
++    const zlib_filefunc_def* pzlib_filefunc_def,
++    voidpf filestream,
++    uLong *pX));
++
++local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX)
++    const zlib_filefunc_def* pzlib_filefunc_def;
++    voidpf filestream;
++    uLong *pX;
++{
++    uLong x ;
++    int i;
++    int err;
++
++    err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
++    x = (uLong)i;
++
++    if (err==UNZ_OK)
++        err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
++    x += ((uLong)i)<<8;
++
++    if (err==UNZ_OK)
++        *pX = x;
++    else
++        *pX = 0;
++    return err;
++}
++
++local int unzlocal_getLong OF((
++    const zlib_filefunc_def* pzlib_filefunc_def,
++    voidpf filestream,
++    uLong *pX));
++
++local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
++    const zlib_filefunc_def* pzlib_filefunc_def;
++    voidpf filestream;
++    uLong *pX;
++{
++    uLong x ;
++    int i;
++    int err;
++
++    err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
++    x = (uLong)i;
++
++    if (err==UNZ_OK)
++        err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
++    x += ((uLong)i)<<8;
++
++    if (err==UNZ_OK)
++        err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
++    x += ((uLong)i)<<16;
++
++    if (err==UNZ_OK)
++        err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
++    x += ((uLong)i)<<24;
++
++    if (err==UNZ_OK)
++        *pX = x;
++    else
++        *pX = 0;
++    return err;
++}
++
++
++/* My own strcmpi / strcasecmp */
++local int strcmpcasenosensitive_internal (fileName1,fileName2)
++    const char* fileName1;
++    const char* fileName2;
++{
++    for (;;)
++    {
++        char c1=*(fileName1++);
++        char c2=*(fileName2++);
++        if ((c1>='a') && (c1<='z'))
++            c1 -= 0x20;
++        if ((c2>='a') && (c2<='z'))
++            c2 -= 0x20;
++        if (c1=='\0')
++            return ((c2=='\0') ? 0 : -1);
++        if (c2=='\0')
++            return 1;
++        if (c1<c2)
++            return -1;
++        if (c1>c2)
++            return 1;
++    }
++}
++
++
++#ifdef  CASESENSITIVITYDEFAULT_NO
++#define CASESENSITIVITYDEFAULTVALUE 2
++#else
++#define CASESENSITIVITYDEFAULTVALUE 1
++#endif
++
++#ifndef STRCMPCASENOSENTIVEFUNCTION
++#define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal
++#endif
++
++/*
++   Compare two filename (fileName1,fileName2).
++   If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp)
++   If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi
++                                                                or strcasecmp)
++   If iCaseSenisivity = 0, case sensitivity is defaut of your operating system
++        (like 1 on Unix, 2 on Windows)
++
++*/
++extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivity)
++    const char* fileName1;
++    const char* fileName2;
++    int iCaseSensitivity;
++{
++    if (iCaseSensitivity==0)
++        iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
++
++    if (iCaseSensitivity==1)
++        return strcmp(fileName1,fileName2);
++
++    return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2);
++}
++
++#ifndef BUFREADCOMMENT
++#define BUFREADCOMMENT (0x400)
++#endif
++
++/*
++  Locate the Central directory of a zipfile (at the end, just before
++    the global comment)
++*/
++local uLong unzlocal_SearchCentralDir OF((
++    const zlib_filefunc_def* pzlib_filefunc_def,
++    voidpf filestream));
++
++local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
++    const zlib_filefunc_def* pzlib_filefunc_def;
++    voidpf filestream;
++{
++    unsigned char* buf;
++    uLong uSizeFile;
++    uLong uBackRead;
++    uLong uMaxBack=0xffff; /* maximum size of global comment */
++    uLong uPosFound=0;
++
++    if (ZSEEK(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
++        return 0;
++
++
++    uSizeFile = ZTELL(*pzlib_filefunc_def,filestream);
++
++    if (uMaxBack>uSizeFile)
++        uMaxBack = uSizeFile;
++
++    buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
++    if (buf==NULL)
++        return 0;
++
++    uBackRead = 4;
++    while (uBackRead<uMaxBack)
++    {
++        uLong uReadSize,uReadPos ;
++        int i;
++        if (uBackRead+BUFREADCOMMENT>uMaxBack)
++            uBackRead = uMaxBack;
++        else
++            uBackRead+=BUFREADCOMMENT;
++        uReadPos = uSizeFile-uBackRead ;
++
++        uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
++                     (BUFREADCOMMENT+4) : (uSizeFile-uReadPos);
++        if (ZSEEK(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
++            break;
++
++        if (ZREAD(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
++            break;
++
++        for (i=(int)uReadSize-3; (i--)>0;)
++            if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
++                ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
++            {
++                uPosFound = uReadPos+i;
++                break;
++            }
++
++        if (uPosFound!=0)
++            break;
++    }
++    TRYFREE(buf);
++    return uPosFound;
++}
++
++/*
++  Open a Zip file. path contain the full pathname (by example,
++     on a Windows NT computer "c:\\test\\zlib114.zip" or on an Unix computer
++     "zlib/zlib114.zip".
++     If the zipfile cannot be opened (file doesn't exist or in not valid), the
++       return value is NULL.
++     Else, the return value is a unzFile Handle, usable with other function
++       of this unzip package.
++*/
++extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
++    const char *path;
++    zlib_filefunc_def* pzlib_filefunc_def;
++{
++    unz_s us;
++    unz_s *s;
++    uLong central_pos,uL;
++
++    uLong number_disk;          /* number of the current dist, used for
++                                   spaning ZIP, unsupported, always 0*/
++    uLong number_disk_with_CD;  /* number the the disk with central dir, used
++                                   for spaning ZIP, unsupported, always 0*/
++    uLong number_entry_CD;      /* total number of entries in
++                                   the central dir
++                                   (same than number_entry on nospan) */
++
++    int err=UNZ_OK;
++
++    if (unz_copyright[0]!=' ')
++        return NULL;
++
++    if (pzlib_filefunc_def==NULL)
++        fill_fopen_filefunc(&us.z_filefunc);
++    else
++        us.z_filefunc = *pzlib_filefunc_def;
++
++    us.filestream= (*(us.z_filefunc.zopen_file))(us.z_filefunc.opaque,
++                                                 path,
++                                                 ZLIB_FILEFUNC_MODE_READ |
++                                                 ZLIB_FILEFUNC_MODE_EXISTING);
++    if (us.filestream==NULL)
++        return NULL;
++
++    central_pos = unzlocal_SearchCentralDir(&us.z_filefunc,us.filestream);
++    if (central_pos==0)
++        err=UNZ_ERRNO;
++
++    if (ZSEEK(us.z_filefunc, us.filestream,
++                                      central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
++        err=UNZ_ERRNO;
++
++    /* the signature, already checked */
++    if (unzlocal_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
++        err=UNZ_ERRNO;
++
++    /* number of this disk */
++    if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK)
++        err=UNZ_ERRNO;
++
++    /* number of the disk with the start of the central directory */
++    if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK)
++        err=UNZ_ERRNO;
++
++    /* total number of entries in the central dir on this disk */
++    if (unzlocal_getShort(&us.z_filefunc, us.filestream,&us.gi.number_entry)!=UNZ_OK)
++        err=UNZ_ERRNO;
++
++    /* total number of entries in the central dir */
++    if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_entry_CD)!=UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if ((number_entry_CD!=us.gi.number_entry) ||
++        (number_disk_with_CD!=0) ||
++        (number_disk!=0))
++        err=UNZ_BADZIPFILE;
++
++    /* size of the central directory */
++    if (unzlocal_getLong(&us.z_filefunc, us.filestream,&us.size_central_dir)!=UNZ_OK)
++        err=UNZ_ERRNO;
++
++    /* offset of start of central directory with respect to the
++          starting disk number */
++    if (unzlocal_getLong(&us.z_filefunc, us.filestream,&us.offset_central_dir)!=UNZ_OK)
++        err=UNZ_ERRNO;
++
++    /* zipfile comment length */
++    if (unzlocal_getShort(&us.z_filefunc, us.filestream,&us.gi.size_comment)!=UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if ((central_pos<us.offset_central_dir+us.size_central_dir) &&
++        (err==UNZ_OK))
++        err=UNZ_BADZIPFILE;
++
++    if (err!=UNZ_OK)
++    {
++        ZCLOSE(us.z_filefunc, us.filestream);
++        return NULL;
++    }
++
++    us.byte_before_the_zipfile = central_pos -
++                            (us.offset_central_dir+us.size_central_dir);
++    us.central_pos = central_pos;
++    us.pfile_in_zip_read = NULL;
++    us.encrypted = 0;
++
++
++    s=(unz_s*)ALLOC(sizeof(unz_s));
++    *s=us;
++    unzGoToFirstFile((unzFile)s);
++    return (unzFile)s;
++}
++
++
++extern unzFile ZEXPORT unzOpen (path)
++    const char *path;
++{
++    return unzOpen2(path, NULL);
++}
++
++/*
++  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.
++  return UNZ_OK if there is no problem. */
++extern int ZEXPORT unzClose (file)
++    unzFile file;
++{
++    unz_s* s;
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++
++    if (s->pfile_in_zip_read!=NULL)
++        unzCloseCurrentFile(file);
++
++    ZCLOSE(s->z_filefunc, s->filestream);
++    TRYFREE(s);
++    return UNZ_OK;
++}
++
++
++/*
++  Write info about the ZipFile in the *pglobal_info structure.
++  No preparation of the structure is needed
++  return UNZ_OK if there is no problem. */
++extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
++    unzFile file;
++    unz_global_info *pglobal_info;
++{
++    unz_s* s;
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    *pglobal_info=s->gi;
++    return UNZ_OK;
++}
++
++
++/*
++   Translate date/time from Dos format to tm_unz (readable more easilty)
++*/
++local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
++    uLong ulDosDate;
++    tm_unz* ptm;
++{
++    uLong uDate;
++    uDate = (uLong)(ulDosDate>>16);
++    ptm->tm_mday = (uInt)(uDate&0x1f) ;
++    ptm->tm_mon =  (uInt)((((uDate)&0x1E0)/0x20)-1) ;
++    ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ;
++
++    ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800);
++    ptm->tm_min =  (uInt) ((ulDosDate&0x7E0)/0x20) ;
++    ptm->tm_sec =  (uInt) (2*(ulDosDate&0x1f)) ;
++}
++
++/*
++  Get Info about the current file in the zipfile, with internal only info
++*/
++local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
++                                                  unz_file_info *pfile_info,
++                                                  unz_file_info_internal
++                                                  *pfile_info_internal,
++                                                  char *szFileName,
++                                                  uLong fileNameBufferSize,
++                                                  void *extraField,
++                                                  uLong extraFieldBufferSize,
++                                                  char *szComment,
++                                                  uLong commentBufferSize));
++
++local int unzlocal_GetCurrentFileInfoInternal (file,
++                                              pfile_info,
++                                              pfile_info_internal,
++                                              szFileName, fileNameBufferSize,
++                                              extraField, extraFieldBufferSize,
++                                              szComment,  commentBufferSize)
++    unzFile file;
++    unz_file_info *pfile_info;
++    unz_file_info_internal *pfile_info_internal;
++    char *szFileName;
++    uLong fileNameBufferSize;
++    void *extraField;
++    uLong extraFieldBufferSize;
++    char *szComment;
++    uLong commentBufferSize;
++{
++    unz_s* s;
++    unz_file_info file_info;
++    unz_file_info_internal file_info_internal;
++    int err=UNZ_OK;
++    uLong uMagic;
++    long lSeek=0;
++
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    if (ZSEEK(s->z_filefunc, s->filestream,
++              s->pos_in_central_dir+s->byte_before_the_zipfile,
++              ZLIB_FILEFUNC_SEEK_SET)!=0)
++        err=UNZ_ERRNO;
++
++
++    /* we check the magic */
++    if (err==UNZ_OK)
++        if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
++            err=UNZ_ERRNO;
++        else if (uMagic!=0x02014b50)
++            err=UNZ_BADZIPFILE;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.version_needed) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.flag) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.compression_method) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.dosDate) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    unzlocal_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date);
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.crc) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_filename) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_extra) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_comment) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.disk_num_start) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.internal_fa) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.external_fa) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    lSeek+=file_info.size_filename;
++    if ((err==UNZ_OK) && (szFileName!=NULL))
++    {
++        uLong uSizeRead ;
++        if (file_info.size_filename<fileNameBufferSize)
++        {
++            *(szFileName+file_info.size_filename)='\0';
++            uSizeRead = file_info.size_filename;
++        }
++        else
++            uSizeRead = fileNameBufferSize;
++
++        if ((file_info.size_filename>0) && (fileNameBufferSize>0))
++            if (ZREAD(s->z_filefunc, s->filestream,szFileName,uSizeRead)!=uSizeRead)
++                err=UNZ_ERRNO;
++        lSeek -= uSizeRead;
++    }
++
++
++    if ((err==UNZ_OK) && (extraField!=NULL))
++    {
++        uLong uSizeRead ;
++        if (file_info.size_file_extra<extraFieldBufferSize)
++            uSizeRead = file_info.size_file_extra;
++        else
++            uSizeRead = extraFieldBufferSize;
++
++        if (lSeek!=0)
++            if (ZSEEK(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
++                lSeek=0;
++            else
++                err=UNZ_ERRNO;
++        if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0))
++            if (ZREAD(s->z_filefunc, s->filestream,extraField,uSizeRead)!=uSizeRead)
++                err=UNZ_ERRNO;
++        lSeek += file_info.size_file_extra - uSizeRead;
++    }
++    else
++        lSeek+=file_info.size_file_extra;
++
++
++    if ((err==UNZ_OK) && (szComment!=NULL))
++    {
++        uLong uSizeRead ;
++        if (file_info.size_file_comment<commentBufferSize)
++        {
++            *(szComment+file_info.size_file_comment)='\0';
++            uSizeRead = file_info.size_file_comment;
++        }
++        else
++            uSizeRead = commentBufferSize;
++
++        if (lSeek!=0)
++            if (ZSEEK(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
++                lSeek=0;
++            else
++                err=UNZ_ERRNO;
++        if ((file_info.size_file_comment>0) && (commentBufferSize>0))
++            if (ZREAD(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead)
++                err=UNZ_ERRNO;
++        lSeek+=file_info.size_file_comment - uSizeRead;
++    }
++    else
++        lSeek+=file_info.size_file_comment;
++
++    if ((err==UNZ_OK) && (pfile_info!=NULL))
++        *pfile_info=file_info;
++
++    if ((err==UNZ_OK) && (pfile_info_internal!=NULL))
++        *pfile_info_internal=file_info_internal;
++
++    return err;
++}
++
++
++
++/*
++  Write info about the ZipFile in the *pglobal_info structure.
++  No preparation of the structure is needed
++  return UNZ_OK if there is no problem.
++*/
++extern int ZEXPORT unzGetCurrentFileInfo (file,
++                                          pfile_info,
++                                          szFileName, fileNameBufferSize,
++                                          extraField, extraFieldBufferSize,
++                                          szComment,  commentBufferSize)
++    unzFile file;
++    unz_file_info *pfile_info;
++    char *szFileName;
++    uLong fileNameBufferSize;
++    void *extraField;
++    uLong extraFieldBufferSize;
++    char *szComment;
++    uLong commentBufferSize;
++{
++    return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL,
++                                                szFileName,fileNameBufferSize,
++                                                extraField,extraFieldBufferSize,
++                                                szComment,commentBufferSize);
++}
++
++/*
++  Set the current file of the zipfile to the first file.
++  return UNZ_OK if there is no problem
++*/
++extern int ZEXPORT unzGoToFirstFile (file)
++    unzFile file;
++{
++    int err=UNZ_OK;
++    unz_s* s;
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    s->pos_in_central_dir=s->offset_central_dir;
++    s->num_file=0;
++    err=unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info,
++                                             &s->cur_file_info_internal,
++                                             NULL,0,NULL,0,NULL,0);
++    s->current_file_ok = (err == UNZ_OK);
++    return err;
++}
++
++/*
++  Set the current file of the zipfile to the next file.
++  return UNZ_OK if there is no problem
++  return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
++*/
++extern int ZEXPORT unzGoToNextFile (file)
++    unzFile file;
++{
++    unz_s* s;
++    int err;
++
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    if (!s->current_file_ok)
++        return UNZ_END_OF_LIST_OF_FILE;
++    if (s->gi.number_entry != 0xffff)    /* 2^16 files overflow hack */
++      if (s->num_file+1==s->gi.number_entry)
++        return UNZ_END_OF_LIST_OF_FILE;
++
++    s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename +
++            s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ;
++    s->num_file++;
++    err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info,
++                                               &s->cur_file_info_internal,
++                                               NULL,0,NULL,0,NULL,0);
++    s->current_file_ok = (err == UNZ_OK);
++    return err;
++}
++
++
++/*
++  Try locate the file szFileName in the zipfile.
++  For the iCaseSensitivity signification, see unzipStringFileNameCompare
++
++  return value :
++  UNZ_OK if the file is found. It becomes the current file.
++  UNZ_END_OF_LIST_OF_FILE if the file is not found
++*/
++extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
++    unzFile file;
++    const char *szFileName;
++    int iCaseSensitivity;
++{
++    unz_s* s;
++    int err;
++
++    /* We remember the 'current' position in the file so that we can jump
++     * back there if we fail.
++     */
++    unz_file_info cur_file_infoSaved;
++    unz_file_info_internal cur_file_info_internalSaved;
++    uLong num_fileSaved;
++    uLong pos_in_central_dirSaved;
++
++
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++
++    if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP)
++        return UNZ_PARAMERROR;
++
++    s=(unz_s*)file;
++    if (!s->current_file_ok)
++        return UNZ_END_OF_LIST_OF_FILE;
++
++    /* Save the current state */
++    num_fileSaved = s->num_file;
++    pos_in_central_dirSaved = s->pos_in_central_dir;
++    cur_file_infoSaved = s->cur_file_info;
++    cur_file_info_internalSaved = s->cur_file_info_internal;
++
++    err = unzGoToFirstFile(file);
++
++    while (err == UNZ_OK)
++    {
++        char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1];
++        err = unzGetCurrentFileInfo(file,NULL,
++                                    szCurrentFileName,sizeof(szCurrentFileName)-1,
++                                    NULL,0,NULL,0);
++        if (err == UNZ_OK)
++        {
++            if (unzStringFileNameCompare(szCurrentFileName,
++                                            szFileName,iCaseSensitivity)==0)
++                return UNZ_OK;
++            err = unzGoToNextFile(file);
++        }
++    }
++
++    /* We failed, so restore the state of the 'current file' to where we
++     * were.
++     */
++    s->num_file = num_fileSaved ;
++    s->pos_in_central_dir = pos_in_central_dirSaved ;
++    s->cur_file_info = cur_file_infoSaved;
++    s->cur_file_info_internal = cur_file_info_internalSaved;
++    return err;
++}
++
++
++/*
++///////////////////////////////////////////
++// Contributed by Ryan Haksi (mailto://cryogen@infoserve.net)
++// I need random access
++//
++// Further optimization could be realized by adding an ability
++// to cache the directory in memory. The goal being a single
++// comprehensive file read to put the file I need in a memory.
++*/
++
++/*
++typedef struct unz_file_pos_s
++{
++    uLong pos_in_zip_directory;   // offset in file
++    uLong num_of_file;            // # of file
++} unz_file_pos;
++*/
++
++extern int ZEXPORT unzGetFilePos(file, file_pos)
++    unzFile file;
++    unz_file_pos* file_pos;
++{
++    unz_s* s;
++
++    if (file==NULL || file_pos==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    if (!s->current_file_ok)
++        return UNZ_END_OF_LIST_OF_FILE;
++
++    file_pos->pos_in_zip_directory  = s->pos_in_central_dir;
++    file_pos->num_of_file           = s->num_file;
++
++    return UNZ_OK;
++}
++
++extern int ZEXPORT unzGoToFilePos(file, file_pos)
++    unzFile file;
++    unz_file_pos* file_pos;
++{
++    unz_s* s;
++    int err;
++
++    if (file==NULL || file_pos==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++
++    /* jump to the right spot */
++    s->pos_in_central_dir = file_pos->pos_in_zip_directory;
++    s->num_file           = file_pos->num_of_file;
++
++    /* set the current file */
++    err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info,
++                                               &s->cur_file_info_internal,
++                                               NULL,0,NULL,0,NULL,0);
++    /* return results */
++    s->current_file_ok = (err == UNZ_OK);
++    return err;
++}
++
++/*
++// Unzip Helper Functions - should be here?
++///////////////////////////////////////////
++*/
++
++/*
++  Read the local header of the current zipfile
++  Check the coherency of the local header and info in the end of central
++        directory about this file
++  store in *piSizeVar the size of extra info in local header
++        (filename and size of extra field data)
++*/
++local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
++                                                    poffset_local_extrafield,
++                                                    psize_local_extrafield)
++    unz_s* s;
++    uInt* piSizeVar;
++    uLong *poffset_local_extrafield;
++    uInt  *psize_local_extrafield;
++{
++    uLong uMagic,uData,uFlags;
++    uLong size_filename;
++    uLong size_extra_field;
++    int err=UNZ_OK;
++
++    *piSizeVar = 0;
++    *poffset_local_extrafield = 0;
++    *psize_local_extrafield = 0;
++
++    if (ZSEEK(s->z_filefunc, s->filestream,s->cur_file_info_internal.offset_curfile +
++                                s->byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0)
++        return UNZ_ERRNO;
++
++
++    if (err==UNZ_OK)
++        if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
++            err=UNZ_ERRNO;
++        else if (uMagic!=0x04034b50)
++            err=UNZ_BADZIPFILE;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
++        err=UNZ_ERRNO;
++/*
++    else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion))
++        err=UNZ_BADZIPFILE;
++*/
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uFlags) != UNZ_OK)
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
++        err=UNZ_ERRNO;
++    else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method))
++        err=UNZ_BADZIPFILE;
++
++    if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) &&
++                         (s->cur_file_info.compression_method!=Z_DEFLATED))
++        err=UNZ_BADZIPFILE;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* date/time */
++        err=UNZ_ERRNO;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* crc */
++        err=UNZ_ERRNO;
++    else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) &&
++                              ((uFlags & 8)==0))
++        err=UNZ_BADZIPFILE;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size compr */
++        err=UNZ_ERRNO;
++    else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) &&
++                              ((uFlags & 8)==0))
++        err=UNZ_BADZIPFILE;
++
++    if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size uncompr */
++        err=UNZ_ERRNO;
++    else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) &&
++                              ((uFlags & 8)==0))
++        err=UNZ_BADZIPFILE;
++
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&size_filename) != UNZ_OK)
++        err=UNZ_ERRNO;
++    else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename))
++        err=UNZ_BADZIPFILE;
++
++    *piSizeVar += (uInt)size_filename;
++
++    if (unzlocal_getShort(&s->z_filefunc, s->filestream,&size_extra_field) != UNZ_OK)
++        err=UNZ_ERRNO;
++    *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile +
++                                    SIZEZIPLOCALHEADER + size_filename;
++    *psize_local_extrafield = (uInt)size_extra_field;
++
++    *piSizeVar += (uInt)size_extra_field;
++
++    return err;
++}
++
++/*
++  Open for reading data the current file in the zipfile.
++  If there is no error and the file is opened, the return value is UNZ_OK.
++*/
++extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
++    unzFile file;
++    int* method;
++    int* level;
++    int raw;
++    const char* password;
++{
++    int err=UNZ_OK;
++    uInt iSizeVar;
++    unz_s* s;
++    file_in_zip_read_info_s* pfile_in_zip_read_info;
++    uLong offset_local_extrafield;  /* offset of the local extra field */
++    uInt  size_local_extrafield;    /* size of the local extra field */
++#    ifndef NOUNCRYPT
++    char source[12];
++#    else
++    if (password != NULL)
++        return UNZ_PARAMERROR;
++#    endif
++
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    if (!s->current_file_ok)
++        return UNZ_PARAMERROR;
++
++    if (s->pfile_in_zip_read != NULL)
++        unzCloseCurrentFile(file);
++
++    if (unzlocal_CheckCurrentFileCoherencyHeader(s,&iSizeVar,
++                &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK)
++        return UNZ_BADZIPFILE;
++
++    pfile_in_zip_read_info = (file_in_zip_read_info_s*)
++                                        ALLOC(sizeof(file_in_zip_read_info_s));
++    if (pfile_in_zip_read_info==NULL)
++        return UNZ_INTERNALERROR;
++
++    pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE);
++    pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield;
++    pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield;
++    pfile_in_zip_read_info->pos_local_extrafield=0;
++    pfile_in_zip_read_info->raw=raw;
++
++    if (pfile_in_zip_read_info->read_buffer==NULL)
++    {
++        TRYFREE(pfile_in_zip_read_info);
++        return UNZ_INTERNALERROR;
++    }
++
++    pfile_in_zip_read_info->stream_initialised=0;
++
++    if (method!=NULL)
++        *method = (int)s->cur_file_info.compression_method;
++
++    if (level!=NULL)
++    {
++        *level = 6;
++        switch (s->cur_file_info.flag & 0x06)
++        {
++          case 6 : *level = 1; break;
++          case 4 : *level = 2; break;
++          case 2 : *level = 9; break;
++        }
++    }
++
++    if ((s->cur_file_info.compression_method!=0) &&
++        (s->cur_file_info.compression_method!=Z_DEFLATED))
++        err=UNZ_BADZIPFILE;
++
++    pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc;
++    pfile_in_zip_read_info->crc32=0;
++    pfile_in_zip_read_info->compression_method =
++            s->cur_file_info.compression_method;
++    pfile_in_zip_read_info->filestream=s->filestream;
++    pfile_in_zip_read_info->z_filefunc=s->z_filefunc;
++    pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile;
++
++    pfile_in_zip_read_info->stream.total_out = 0;
++
++    if ((s->cur_file_info.compression_method==Z_DEFLATED) &&
++        (!raw))
++    {
++      pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
++      pfile_in_zip_read_info->stream.zfree = (free_func)0;
++      pfile_in_zip_read_info->stream.opaque = (voidpf)0;
++      pfile_in_zip_read_info->stream.next_in = (voidpf)0;
++      pfile_in_zip_read_info->stream.avail_in = 0;
++
++      err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
++      if (err == Z_OK)
++        pfile_in_zip_read_info->stream_initialised=1;
++      else
++      {
++        TRYFREE(pfile_in_zip_read_info);
++        return err;
++      }
++        /* windowBits is passed < 0 to tell that there is no zlib header.
++         * Note that in this case inflate *requires* an extra "dummy" byte
++         * after the compressed stream in order to complete decompression and
++         * return Z_STREAM_END.
++         * In unzip, i don't wait absolutely Z_STREAM_END because I known the
++         * size of both compressed and uncompressed data
++         */
++    }
++    pfile_in_zip_read_info->rest_read_compressed =
++            s->cur_file_info.compressed_size ;
++    pfile_in_zip_read_info->rest_read_uncompressed =
++            s->cur_file_info.uncompressed_size ;
++
++
++    pfile_in_zip_read_info->pos_in_zipfile =
++            s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER +
++              iSizeVar;
++
++    pfile_in_zip_read_info->stream.avail_in = (uInt)0;
++
++    s->pfile_in_zip_read = pfile_in_zip_read_info;
++
++#    ifndef NOUNCRYPT
++    if (password != NULL)
++    {
++        int i;
++        s->pcrc_32_tab = get_crc_table();
++        init_keys(password,s->keys,s->pcrc_32_tab);
++        if (ZSEEK(s->z_filefunc, s->filestream,
++                  s->pfile_in_zip_read->pos_in_zipfile +
++                     s->pfile_in_zip_read->byte_before_the_zipfile,
++                  SEEK_SET)!=0)
++            return UNZ_INTERNALERROR;
++        if(ZREAD(s->z_filefunc, s->filestream,source, 12)<12)
++            return UNZ_INTERNALERROR;
++
++        for (i = 0; i<12; i++)
++            zdecode(s->keys,s->pcrc_32_tab,source[i]);
++
++        s->pfile_in_zip_read->pos_in_zipfile+=12;
++        s->encrypted=1;
++    }
++#    endif
++
++
++    return UNZ_OK;
++}
++
++extern int ZEXPORT unzOpenCurrentFile (file)
++    unzFile file;
++{
++    return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
++}
++
++extern int ZEXPORT unzOpenCurrentFilePassword (file, password)
++    unzFile file;
++    const char* password;
++{
++    return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
++}
++
++extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw)
++    unzFile file;
++    int* method;
++    int* level;
++    int raw;
++{
++    return unzOpenCurrentFile3(file, method, level, raw, NULL);
++}
++
++/*
++  Read bytes from the current file.
++  buf contain buffer where data must be copied
++  len the size of buf.
++
++  return the number of byte copied if somes bytes are copied
++  return 0 if the end of file was reached
++  return <0 with error code if there is an error
++    (UNZ_ERRNO for IO error, or zLib error for uncompress error)
++*/
++extern int ZEXPORT unzReadCurrentFile  (file, buf, len)
++    unzFile file;
++    voidp buf;
++    unsigned len;
++{
++    int err=UNZ_OK;
++    uInt iRead = 0;
++    unz_s* s;
++    file_in_zip_read_info_s* pfile_in_zip_read_info;
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    pfile_in_zip_read_info=s->pfile_in_zip_read;
++
++    if (pfile_in_zip_read_info==NULL)
++        return UNZ_PARAMERROR;
++
++
++    if ((pfile_in_zip_read_info->read_buffer == NULL))
++        return UNZ_END_OF_LIST_OF_FILE;
++    if (len==0)
++        return 0;
++
++    pfile_in_zip_read_info->stream.next_out = (Bytef*)buf;
++
++    pfile_in_zip_read_info->stream.avail_out = (uInt)len;
++
++    if ((len>pfile_in_zip_read_info->rest_read_uncompressed) &&
++        (!(pfile_in_zip_read_info->raw)))
++        pfile_in_zip_read_info->stream.avail_out =
++            (uInt)pfile_in_zip_read_info->rest_read_uncompressed;
++
++    if ((len>pfile_in_zip_read_info->rest_read_compressed+
++           pfile_in_zip_read_info->stream.avail_in) &&
++         (pfile_in_zip_read_info->raw))
++        pfile_in_zip_read_info->stream.avail_out =
++            (uInt)pfile_in_zip_read_info->rest_read_compressed+
++            pfile_in_zip_read_info->stream.avail_in;
++
++    while (pfile_in_zip_read_info->stream.avail_out>0)
++    {
++        if ((pfile_in_zip_read_info->stream.avail_in==0) &&
++            (pfile_in_zip_read_info->rest_read_compressed>0))
++        {
++            uInt uReadThis = UNZ_BUFSIZE;
++            if (pfile_in_zip_read_info->rest_read_compressed<uReadThis)
++                uReadThis = (uInt)pfile_in_zip_read_info->rest_read_compressed;
++            if (uReadThis == 0)
++                return UNZ_EOF;
++            if (ZSEEK(pfile_in_zip_read_info->z_filefunc,
++                      pfile_in_zip_read_info->filestream,
++                      pfile_in_zip_read_info->pos_in_zipfile +
++                         pfile_in_zip_read_info->byte_before_the_zipfile,
++                         ZLIB_FILEFUNC_SEEK_SET)!=0)
++                return UNZ_ERRNO;
++            if (ZREAD(pfile_in_zip_read_info->z_filefunc,
++                      pfile_in_zip_read_info->filestream,
++                      pfile_in_zip_read_info->read_buffer,
++                      uReadThis)!=uReadThis)
++                return UNZ_ERRNO;
++
++
++#            ifndef NOUNCRYPT
++            if(s->encrypted)
++            {
++                uInt i;
++                for(i=0;i<uReadThis;i++)
++                  pfile_in_zip_read_info->read_buffer[i] =
++                      zdecode(s->keys,s->pcrc_32_tab,
++                              pfile_in_zip_read_info->read_buffer[i]);
++            }
++#            endif
++
++
++            pfile_in_zip_read_info->pos_in_zipfile += uReadThis;
++
++            pfile_in_zip_read_info->rest_read_compressed-=uReadThis;
++
++            pfile_in_zip_read_info->stream.next_in =
++                (Bytef*)pfile_in_zip_read_info->read_buffer;
++            pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis;
++        }
++
++        if ((pfile_in_zip_read_info->compression_method==0) || (pfile_in_zip_read_info->raw))
++        {
++            uInt uDoCopy,i ;
++
++            if ((pfile_in_zip_read_info->stream.avail_in == 0) &&
++                (pfile_in_zip_read_info->rest_read_compressed == 0))
++                return (iRead==0) ? UNZ_EOF : iRead;
++
++            if (pfile_in_zip_read_info->stream.avail_out <
++                            pfile_in_zip_read_info->stream.avail_in)
++                uDoCopy = pfile_in_zip_read_info->stream.avail_out ;
++            else
++                uDoCopy = pfile_in_zip_read_info->stream.avail_in ;
++
++            for (i=0;i<uDoCopy;i++)
++                *(pfile_in_zip_read_info->stream.next_out+i) =
++                        *(pfile_in_zip_read_info->stream.next_in+i);
++
++            pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,
++                                pfile_in_zip_read_info->stream.next_out,
++                                uDoCopy);
++            pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy;
++            pfile_in_zip_read_info->stream.avail_in -= uDoCopy;
++            pfile_in_zip_read_info->stream.avail_out -= uDoCopy;
++            pfile_in_zip_read_info->stream.next_out += uDoCopy;
++            pfile_in_zip_read_info->stream.next_in += uDoCopy;
++            pfile_in_zip_read_info->stream.total_out += uDoCopy;
++            iRead += uDoCopy;
++        }
++        else
++        {
++            uLong uTotalOutBefore,uTotalOutAfter;
++            const Bytef *bufBefore;
++            uLong uOutThis;
++            int flush=Z_SYNC_FLUSH;
++
++            uTotalOutBefore = pfile_in_zip_read_info->stream.total_out;
++            bufBefore = pfile_in_zip_read_info->stream.next_out;
++
++            /*
++            if ((pfile_in_zip_read_info->rest_read_uncompressed ==
++                     pfile_in_zip_read_info->stream.avail_out) &&
++                (pfile_in_zip_read_info->rest_read_compressed == 0))
++                flush = Z_FINISH;
++            */
++            err=inflate(&pfile_in_zip_read_info->stream,flush);
++
++            if ((err>=0) && (pfile_in_zip_read_info->stream.msg!=NULL))
++              err = Z_DATA_ERROR;
++
++            uTotalOutAfter = pfile_in_zip_read_info->stream.total_out;
++            uOutThis = uTotalOutAfter-uTotalOutBefore;
++
++            pfile_in_zip_read_info->crc32 =
++                crc32(pfile_in_zip_read_info->crc32,bufBefore,
++                        (uInt)(uOutThis));
++
++            pfile_in_zip_read_info->rest_read_uncompressed -=
++                uOutThis;
++
++            iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
++
++            if (err==Z_STREAM_END)
++                return (iRead==0) ? UNZ_EOF : iRead;
++            if (err!=Z_OK)
++                break;
++        }
++    }
++
++    if (err==Z_OK)
++        return iRead;
++    return err;
++}
++
++
++/*
++  Give the current position in uncompressed data
++*/
++extern z_off_t ZEXPORT unztell (file)
++    unzFile file;
++{
++    unz_s* s;
++    file_in_zip_read_info_s* pfile_in_zip_read_info;
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    pfile_in_zip_read_info=s->pfile_in_zip_read;
++
++    if (pfile_in_zip_read_info==NULL)
++        return UNZ_PARAMERROR;
++
++    return (z_off_t)pfile_in_zip_read_info->stream.total_out;
++}
++
++
++/*
++  return 1 if the end of file was reached, 0 elsewhere
++*/
++extern int ZEXPORT unzeof (file)
++    unzFile file;
++{
++    unz_s* s;
++    file_in_zip_read_info_s* pfile_in_zip_read_info;
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    pfile_in_zip_read_info=s->pfile_in_zip_read;
++
++    if (pfile_in_zip_read_info==NULL)
++        return UNZ_PARAMERROR;
++
++    if (pfile_in_zip_read_info->rest_read_uncompressed == 0)
++        return 1;
++    else
++        return 0;
++}
++
++
++
++/*
++  Read extra field from the current file (opened by unzOpenCurrentFile)
++  This is the local-header version of the extra field (sometimes, there is
++    more info in the local-header version than in the central-header)
++
++  if buf==NULL, it return the size of the local extra field that can be read
++
++  if buf!=NULL, len is the size of the buffer, the extra header is copied in
++    buf.
++  the return value is the number of bytes copied in buf, or (if <0)
++    the error code
++*/
++extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
++    unzFile file;
++    voidp buf;
++    unsigned len;
++{
++    unz_s* s;
++    file_in_zip_read_info_s* pfile_in_zip_read_info;
++    uInt read_now;
++    uLong size_to_read;
++
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    pfile_in_zip_read_info=s->pfile_in_zip_read;
++
++    if (pfile_in_zip_read_info==NULL)
++        return UNZ_PARAMERROR;
++
++    size_to_read = (pfile_in_zip_read_info->size_local_extrafield -
++                pfile_in_zip_read_info->pos_local_extrafield);
++
++    if (buf==NULL)
++        return (int)size_to_read;
++
++    if (len>size_to_read)
++        read_now = (uInt)size_to_read;
++    else
++        read_now = (uInt)len ;
++
++    if (read_now==0)
++        return 0;
++
++    if (ZSEEK(pfile_in_zip_read_info->z_filefunc,
++              pfile_in_zip_read_info->filestream,
++              pfile_in_zip_read_info->offset_local_extrafield +
++              pfile_in_zip_read_info->pos_local_extrafield,
++              ZLIB_FILEFUNC_SEEK_SET)!=0)
++        return UNZ_ERRNO;
++
++    if (ZREAD(pfile_in_zip_read_info->z_filefunc,
++              pfile_in_zip_read_info->filestream,
++              buf,read_now)!=read_now)
++        return UNZ_ERRNO;
++
++    return (int)read_now;
++}
++
++/*
++  Close the file in zip opened with unzipOpenCurrentFile
++  Return UNZ_CRCERROR if all the file was read but the CRC is not good
++*/
++extern int ZEXPORT unzCloseCurrentFile (file)
++    unzFile file;
++{
++    int err=UNZ_OK;
++
++    unz_s* s;
++    file_in_zip_read_info_s* pfile_in_zip_read_info;
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    pfile_in_zip_read_info=s->pfile_in_zip_read;
++
++    if (pfile_in_zip_read_info==NULL)
++        return UNZ_PARAMERROR;
++
++
++    if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) &&
++        (!pfile_in_zip_read_info->raw))
++    {
++        if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait)
++            err=UNZ_CRCERROR;
++    }
++
++
++    TRYFREE(pfile_in_zip_read_info->read_buffer);
++    pfile_in_zip_read_info->read_buffer = NULL;
++    if (pfile_in_zip_read_info->stream_initialised)
++        inflateEnd(&pfile_in_zip_read_info->stream);
++
++    pfile_in_zip_read_info->stream_initialised = 0;
++    TRYFREE(pfile_in_zip_read_info);
++
++    s->pfile_in_zip_read=NULL;
++
++    return err;
++}
++
++
++/*
++  Get the global comment string of the ZipFile, in the szComment buffer.
++  uSizeBuf is the size of the szComment buffer.
++  return the number of byte copied or an error code <0
++*/
++extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
++    unzFile file;
++    char *szComment;
++    uLong uSizeBuf;
++{
++    int err=UNZ_OK;
++    unz_s* s;
++    uLong uReadThis ;
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++
++    uReadThis = uSizeBuf;
++    if (uReadThis>s->gi.size_comment)
++        uReadThis = s->gi.size_comment;
++
++    if (ZSEEK(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0)
++        return UNZ_ERRNO;
++
++    if (uReadThis>0)
++    {
++      *szComment='\0';
++      if (ZREAD(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis)
++        return UNZ_ERRNO;
++    }
++
++    if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment))
++        *(szComment+s->gi.size_comment)='\0';
++    return (int)uReadThis;
++}
++
++/* Additions by RX '2004 */
++extern uLong ZEXPORT unzGetOffset (file)
++    unzFile file;
++{
++    unz_s* s;
++
++    if (file==NULL)
++          return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++    if (!s->current_file_ok)
++      return 0;
++    if (s->gi.number_entry != 0 && s->gi.number_entry != 0xffff)
++      if (s->num_file==s->gi.number_entry)
++         return 0;
++    return s->pos_in_central_dir;
++}
++
++extern int ZEXPORT unzSetOffset (file, pos)
++        unzFile file;
++        uLong pos;
++{
++    unz_s* s;
++    int err;
++
++    if (file==NULL)
++        return UNZ_PARAMERROR;
++    s=(unz_s*)file;
++
++    s->pos_in_central_dir = pos;
++    s->num_file = s->gi.number_entry;      /* hack */
++    err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info,
++                                              &s->cur_file_info_internal,
++                                              NULL,0,NULL,0,NULL,0);
++    s->current_file_ok = (err == UNZ_OK);
++    return err;
++}
+diff -urN zipfile.orig//unzip.h zipfile/unzip.h
+--- /dev/null	1970-01-01 01:00:00.000000000 +0100
++++ shell/source/all/zipfile/unzip.h	2009-07-09 17:22:27.000000000 +0200
+@@ -0,0 +1,354 @@
++/* unzip.h -- IO for uncompress .zip files using zlib
++   Version 1.01e, February 12th, 2005
++
++   Copyright (C) 1998-2005 Gilles Vollant
++
++   This unzip package allow extract file from .ZIP file, compatible with PKZip 2.04g
++     WinZip, InfoZip tools and compatible.
++
++   Multi volume ZipFile (span) are not supported.
++   Encryption compatible with pkzip 2.04g only supported
++   Old compressions used by old PKZip 1.x are not supported
++
++
++   I WAIT FEEDBACK at mail info at winimage.com
++   Visit also http://www.winimage.com/zLibDll/unzip.htm for evolution
++
++   Condition of use and distribution are the same than zlib :
++
++  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.
++
++
++*/
++
++/* for more info about .ZIP format, see
++      http://www.info-zip.org/pub/infozip/doc/appnote-981119-iz.zip
++      http://www.info-zip.org/pub/infozip/doc/
++   PkWare has also a specification at :
++      ftp://ftp.pkware.com/probdesc.zip
++*/
++
++#ifndef _unz_H
++#define _unz_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#ifndef _ZLIB_H
++#include "zlib.h"
++#endif
++
++#ifndef _ZLIBIOAPI_H
++#include "ioapi.h"
++#endif
++
++#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
++/* like the STRICT of WIN32, we define a pointer that cannot be converted
++    from (void*) without cast */
++typedef struct TagunzFile__ { int unused; } unzFile__;
++typedef unzFile__ *unzFile;
++#else
++typedef voidp unzFile;
++#endif
++
++
++#define UNZ_OK                          (0)
++#define UNZ_END_OF_LIST_OF_FILE         (-100)
++#define UNZ_ERRNO                       (Z_ERRNO)
++#define UNZ_EOF                         (0)
++#define UNZ_PARAMERROR                  (-102)
++#define UNZ_BADZIPFILE                  (-103)
++#define UNZ_INTERNALERROR               (-104)
++#define UNZ_CRCERROR                    (-105)
++
++/* tm_unz contain date/time info */
++typedef struct tm_unz_s
++{
++    uInt tm_sec;            /* seconds after the minute - [0,59] */
++    uInt tm_min;            /* minutes after the hour - [0,59] */
++    uInt tm_hour;           /* hours since midnight - [0,23] */
++    uInt tm_mday;           /* day of the month - [1,31] */
++    uInt tm_mon;            /* months since January - [0,11] */
++    uInt tm_year;           /* years - [1980..2044] */
++} tm_unz;
++
++/* unz_global_info structure contain global data about the ZIPfile
++   These data comes from the end of central dir */
++typedef struct unz_global_info_s
++{
++    uLong number_entry;         /* total number of entries in
++                       the central dir on this disk */
++    uLong size_comment;         /* size of the global comment of the zipfile */
++} unz_global_info;
++
++
++/* unz_file_info contain information about a file in the zipfile */
++typedef struct unz_file_info_s
++{
++    uLong version;              /* version made by                 2 bytes */
++    uLong version_needed;       /* version needed to extract       2 bytes */
++    uLong flag;                 /* general purpose bit flag        2 bytes */
++    uLong compression_method;   /* compression method              2 bytes */
++    uLong dosDate;              /* last mod file date in Dos fmt   4 bytes */
++    uLong crc;                  /* crc-32                          4 bytes */
++    uLong compressed_size;      /* compressed size                 4 bytes */
++    uLong uncompressed_size;    /* uncompressed size               4 bytes */
++    uLong size_filename;        /* filename length                 2 bytes */
++    uLong size_file_extra;      /* extra field length              2 bytes */
++    uLong size_file_comment;    /* file comment length             2 bytes */
++
++    uLong disk_num_start;       /* disk number start               2 bytes */
++    uLong internal_fa;          /* internal file attributes        2 bytes */
++    uLong external_fa;          /* external file attributes        4 bytes */
++
++    tm_unz tmu_date;
++} unz_file_info;
++
++extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1,
++                                                 const char* fileName2,
++                                                 int iCaseSensitivity));
++/*
++   Compare two filename (fileName1,fileName2).
++   If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp)
++   If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi
++                                or strcasecmp)
++   If iCaseSenisivity = 0, case sensitivity is defaut of your operating system
++    (like 1 on Unix, 2 on Windows)
++*/
++
++
++extern unzFile ZEXPORT unzOpen OF((const char *path));
++/*
++  Open a Zip file. path contain the full pathname (by example,
++     on a Windows XP computer "c:\\zlib\\zlib113.zip" or on an Unix computer
++     "zlib/zlib113.zip".
++     If the zipfile cannot be opened (file don't exist or in not valid), the
++       return value is NULL.
++     Else, the return value is a unzFile Handle, usable with other function
++       of this unzip package.
++*/
++
++extern unzFile ZEXPORT unzOpen2 OF((const char *path,
++                                    zlib_filefunc_def* pzlib_filefunc_def));
++/*
++   Open a Zip file, like unzOpen, but provide a set of file low level API
++      for read/write the zip file (see ioapi.h)
++*/
++
++extern int ZEXPORT unzClose OF((unzFile file));
++/*
++  Close a ZipFile opened with unzipOpen.
++  If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
++    these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
++  return UNZ_OK if there is no problem. */
++
++extern int ZEXPORT unzGetGlobalInfo OF((unzFile file,
++                                        unz_global_info *pglobal_info));
++/*
++  Write info about the ZipFile in the *pglobal_info structure.
++  No preparation of the structure is needed
++  return UNZ_OK if there is no problem. */
++
++
++extern int ZEXPORT unzGetGlobalComment OF((unzFile file,
++                                           char *szComment,
++                                           uLong uSizeBuf));
++/*
++  Get the global comment string of the ZipFile, in the szComment buffer.
++  uSizeBuf is the size of the szComment buffer.
++  return the number of byte copied or an error code <0
++*/
++
++
++/***************************************************************************/
++/* Unzip package allow you browse the directory of the zipfile */
++
++extern int ZEXPORT unzGoToFirstFile OF((unzFile file));
++/*
++  Set the current file of the zipfile to the first file.
++  return UNZ_OK if there is no problem
++*/
++
++extern int ZEXPORT unzGoToNextFile OF((unzFile file));
++/*
++  Set the current file of the zipfile to the next file.
++  return UNZ_OK if there is no problem
++  return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
++*/
++
++extern int ZEXPORT unzLocateFile OF((unzFile file,
++                     const char *szFileName,
++                     int iCaseSensitivity));
++/*
++  Try locate the file szFileName in the zipfile.
++  For the iCaseSensitivity signification, see unzStringFileNameCompare
++
++  return value :
++  UNZ_OK if the file is found. It becomes the current file.
++  UNZ_END_OF_LIST_OF_FILE if the file is not found
++*/
++
++
++/* ****************************************** */
++/* Ryan supplied functions */
++/* unz_file_info contain information about a file in the zipfile */
++typedef struct unz_file_pos_s
++{
++    uLong pos_in_zip_directory;   /* offset in zip file directory */
++    uLong num_of_file;            /* # of file */
++} unz_file_pos;
++
++extern int ZEXPORT unzGetFilePos(
++    unzFile file,
++    unz_file_pos* file_pos);
++
++extern int ZEXPORT unzGoToFilePos(
++    unzFile file,
++    unz_file_pos* file_pos);
++
++/* ****************************************** */
++
++extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file,
++                         unz_file_info *pfile_info,
++                         char *szFileName,
++                         uLong fileNameBufferSize,
++                         void *extraField,
++                         uLong extraFieldBufferSize,
++                         char *szComment,
++                         uLong commentBufferSize));
++/*
++  Get Info about the current file
++  if pfile_info!=NULL, the *pfile_info structure will contain somes info about
++        the current file
++  if szFileName!=NULL, the filemane string will be copied in szFileName
++            (fileNameBufferSize is the size of the buffer)
++  if extraField!=NULL, the extra field information will be copied in extraField
++            (extraFieldBufferSize is the size of the buffer).
++            This is the Central-header version of the extra field
++  if szComment!=NULL, the comment string of the file will be copied in szComment
++            (commentBufferSize is the size of the buffer)
++*/
++
++/***************************************************************************/
++/* for reading the content of the current zipfile, you can open it, read data
++   from it, and close it (you can close it before reading all the file)
++   */
++
++extern int ZEXPORT unzOpenCurrentFile OF((unzFile file));
++/*
++  Open for reading data the current file in the zipfile.
++  If there is no error, the return value is UNZ_OK.
++*/
++
++extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file,
++                                                  const char* password));
++/*
++  Open for reading data the current file in the zipfile.
++  password is a crypting password
++  If there is no error, the return value is UNZ_OK.
++*/
++
++extern int ZEXPORT unzOpenCurrentFile2 OF((unzFile file,
++                                           int* method,
++                                           int* level,
++                                           int raw));
++/*
++  Same than unzOpenCurrentFile, but open for read raw the file (not uncompress)
++    if raw==1
++  *method will receive method of compression, *level will receive level of
++     compression
++  note : you can set level parameter as NULL (if you did not want known level,
++         but you CANNOT set method parameter as NULL
++*/
++
++extern int ZEXPORT unzOpenCurrentFile3 OF((unzFile file,
++                                           int* method,
++                                           int* level,
++                                           int raw,
++                                           const char* password));
++/*
++  Same than unzOpenCurrentFile, but open for read raw the file (not uncompress)
++    if raw==1
++  *method will receive method of compression, *level will receive level of
++     compression
++  note : you can set level parameter as NULL (if you did not want known level,
++         but you CANNOT set method parameter as NULL
++*/
++
++
++extern int ZEXPORT unzCloseCurrentFile OF((unzFile file));
++/*
++  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 unzReadCurrentFile OF((unzFile file,
++                      voidp buf,
++                      unsigned len));
++/*
++  Read bytes from the current file (opened by unzOpenCurrentFile)
++  buf contain buffer where data must be copied
++  len the size of buf.
++
++  return the number of byte copied if somes bytes are copied
++  return 0 if the end of file was reached
++  return <0 with error code if there is an error
++    (UNZ_ERRNO for IO error, or zLib error for uncompress error)
++*/
++
++extern z_off_t ZEXPORT unztell OF((unzFile file));
++/*
++  Give the current position in uncompressed data
++*/
++
++extern int ZEXPORT unzeof OF((unzFile file));
++/*
++  return 1 if the end of file was reached, 0 elsewhere
++*/
++
++extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file,
++                                             voidp buf,
++                                             unsigned len));
++/*
++  Read extra field from the current file (opened by unzOpenCurrentFile)
++  This is the local-header version of the extra field (sometimes, there is
++    more info in the local-header version than in the central-header)
++
++  if buf==NULL, it return the size of the local extra field
++
++  if buf!=NULL, len is the size of the buffer, the extra header is copied in
++    buf.
++  the return value is the number of bytes copied in buf, or (if <0)
++    the error code
++*/
++
++/***************************************************************************/
++
++/* Get the current file offset */
++extern uLong ZEXPORT unzGetOffset (unzFile file);
++
++/* Set the current file offset */
++extern int ZEXPORT unzSetOffset (unzFile file, uLong pos);
++
++
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* _unz_H */
+--- dbaccess/prj/build.lst.orig	2009-07-11 10:37:50.000000000 +0200
++++ dbaccess/prj/build.lst	2009-07-11 10:38:42.000000000 +0200
+@@ -1,29 +1,29 @@
+ ba	dbaccess	:	BOOST:boost connectivity svx stoc uui QADEVOOO:qadevOOo NULL
+-ba	dbaccess								usr1	-	all	ba_mkout NULL
+-ba	dbaccess\inc							nmake	-	all	ba_inc NULL
+-ba	dbaccess\source\ui\inc					nmake	-	all	ba_uiinc ba_inc NULL
+-ba	dbaccess\source\core\api				nmake	-	all	ba_capi ba_inc NULL
+-ba	dbaccess\source\core\dataaccess			nmake	-	all	ba_cdaccess ba_capi ba_inc NULL
+-ba	dbaccess\source\core\misc				nmake	-	all	ba_cmisc ba_cdaccess ba_inc NULL
+-ba	dbaccess\source\core\resource			nmake	-	all	ba_cres ba_cmisc ba_inc NULL
+-ba	dbaccess\source\filter\xml				nmake	-	all	ba_ffilter ba_shared ba_util ba_inc NULL
+-ba	dbaccess\source\filter\migration		nmake	-	all	ba_fmigration ba_shared ba_inc NULL
+-ba	dbaccess\source\shared					nmake	-	all	ba_shared ba_cres ba_inc NULL
+-ba  dbaccess\source\sdbtools\connection     nmake   -   all ba_conntools ba_inc NULL
+-ba  dbaccess\source\sdbtools\misc           nmake   -   all ba_misctools ba_inc NULL
+-ba  dbaccess\source\sdbtools\resource       nmake   -   all ba_miscres ba_inc NULL
+-ba  dbaccess\source\ext\macromigration      nmake   -   all ba_extmm ba_inc NULL
+-ba  dbaccess\source\ext\adabas  			nmake   -   all ba_ext_adabasui ba_inc NULL
+-ba	dbaccess\source\ui\app					nmake	-	all	ba_uiapp ba_uiinc ba_inc NULL
+-ba	dbaccess\source\ui\browser				nmake	-	all	ba_uibrowser ba_uiinc ba_inc NULL
+-ba	dbaccess\source\ui\dlg					nmake	-	all	ba_uidlg ba_uiinc ba_inc NULL
+-ba	dbaccess\source\ui\control				nmake	-	all	ba_uicontrol ba_uiinc ba_inc NULL
+-ba	dbaccess\source\ui\misc					nmake	-	all	ba_uimisc ba_inc NULL
+-ba	dbaccess\source\ui\querydesign			nmake	-	all	ba_uiquery ba_uiinc ba_inc NULL
+-ba	dbaccess\source\ui\relationdesign		nmake	-	all	ba_uirelationdesign ba_uiinc ba_inc NULL
+-ba	dbaccess\source\ui\tabledesign			nmake	-	all	ba_uitabledesign ba_uiinc ba_inc NULL
+-ba	dbaccess\source\ui\uno					nmake	-	all	ba_uiuno ba_uimisc ba_inc NULL
+-ba	dbaccess\source\ui\imagelists			nmake	-	all	ba_uiimglst ba_inc NULL
+-ba  dbaccess\util                           nmake   -   all ba_util ba_uiimglst ba_capi ba_shared ba_uibrowser ba_uiapp ba_uicontrol ba_uidlg ba_uimisc ba_uiquery ba_uitabledesign ba_uirelationdesign ba_uiuno ba_conntools ba_misctools ba_miscres ba_ext_adabasui NULL
+-ba  dbaccess\win32\source\odbcconfig        nmake   -   w ba_odbcconfig ba_inc NULL
+-ba  dbaccess\qa\complex\dbaccess            nmake   -   all ba_complex_tests NULL
++#ba	dbaccess								usr1	-	all	ba_mkout NULL
++#ba	dbaccess\inc							nmake	-	all	ba_inc NULL
++#ba	dbaccess\source\ui\inc					nmake	-	all	ba_uiinc ba_inc NULL
++#ba	dbaccess\source\core\api				nmake	-	all	ba_capi ba_inc NULL
++#ba	dbaccess\source\core\dataaccess			nmake	-	all	ba_cdaccess ba_capi ba_inc NULL
++#ba	dbaccess\source\core\misc				nmake	-	all	ba_cmisc ba_cdaccess ba_inc NULL
++#ba	dbaccess\source\core\resource			nmake	-	all	ba_cres ba_cmisc ba_inc NULL
++#ba	dbaccess\source\filter\xml				nmake	-	all	ba_ffilter ba_shared ba_util ba_inc NULL
++#ba	dbaccess\source\filter\migration		nmake	-	all	ba_fmigration ba_shared ba_inc NULL
++#ba	dbaccess\source\shared					nmake	-	all	ba_shared ba_cres ba_inc NULL
++#ba  dbaccess\source\sdbtools\connection     nmake   -   all ba_conntools ba_inc NULL
++#ba  dbaccess\source\sdbtools\misc           nmake   -   all ba_misctools ba_inc NULL
++#ba  dbaccess\source\sdbtools\resource       nmake   -   all ba_miscres ba_inc NULL
++#ba  dbaccess\source\ext\macromigration      nmake   -   all ba_extmm ba_inc NULL
++#ba  dbaccess\source\ext\adabas  			nmake   -   all ba_ext_adabasui ba_inc NULL
++#ba	dbaccess\source\ui\app					nmake	-	all	ba_uiapp ba_uiinc ba_inc NULL
++#ba	dbaccess\source\ui\browser				nmake	-	all	ba_uibrowser ba_uiinc ba_inc NULL
++#ba	dbaccess\source\ui\dlg					nmake	-	all	ba_uidlg ba_uiinc ba_inc NULL
++#ba	dbaccess\source\ui\control				nmake	-	all	ba_uicontrol ba_uiinc ba_inc NULL
++#ba	dbaccess\source\ui\misc					nmake	-	all	ba_uimisc ba_inc NULL
++#ba	dbaccess\source\ui\querydesign			nmake	-	all	ba_uiquery ba_uiinc ba_inc NULL
++#ba	dbaccess\source\ui\relationdesign		nmake	-	all	ba_uirelationdesign ba_uiinc ba_inc NULL
++#ba	dbaccess\source\ui\tabledesign			nmake	-	all	ba_uitabledesign ba_uiinc ba_inc NULL
++#ba	dbaccess\source\ui\uno					nmake	-	all	ba_uiuno ba_uimisc ba_inc NULL
++#ba	dbaccess\source\ui\imagelists			nmake	-	all	ba_uiimglst ba_inc NULL
++#ba  dbaccess\util                           nmake   -   all ba_util ba_uiimglst ba_capi ba_shared ba_uibrowser ba_uiapp ba_uicontrol ba_uidlg ba_uimisc ba_uiquery ba_uitabledesign ba_uirelationdesign ba_uiuno ba_conntools ba_misctools ba_miscres ba_ext_adabasui NULL
++#ba  dbaccess\win32\source\odbcconfig        nmake   -   w ba_odbcconfig ba_inc NULL
++#ba  dbaccess\qa\complex\dbaccess            nmake   -   all ba_complex_tests NULL
+--- desktop/prj/build.lst.orig	2009-07-11 13:26:12.000000000 +0200
++++ desktop/prj/build.lst	2009-07-11 13:24:08.000000000 +0200
+@@ -10,7 +10,7 @@
+ dt	desktop\source\offacc					nmake	-	all	dt_offac dt_inc NULL
+ dt	desktop\source\splash					nmake	-	all	dt_spl dt_migr dt_inc NULL
+ dt	desktop\win32\source					nmake	-	w	dt_wrapper dt_inc NULL
+-dt	desktop\win32\source\setup				nmake	-	w	dt_setup dt_inc NULL
++#dt	desktop\win32\source\setup				nmake	-	w	dt_setup dt_inc NULL
+ dt	desktop\win32\source\officeloader		nmake	-	w	dt_officeloader dt_inc NULL
+ dt	desktop\win32\source\guiloader			nmake	-	w	dt_guiloader dt_wrapper.w dt_inc NULL
+ dt  desktop\win32\source\guistdio           nmake   -   w   dt_guistdio dt_inc NULL
+--- extensions/prj/build.lst.orig	2009-07-11 13:49:43.000000000 +0200
++++ extensions/prj/build.lst	2009-07-11 13:49:50.000000000 +0200
+@@ -27,8 +27,8 @@
+ ex  extensions\source\oooimprovement            nmake   -   all ex_oooimprovement ex_inc NULL
+ ex  extensions\source\preload                   nmake   -   all ex_preload  ex_inc NULL
+ ex  extensions\source\config\ldap               nmake   -   all ex_ldap ex_inc NULL
+-ex	extensions\source\nsplugin\source			nmake	-	u	ex_nsplugin ex_inc NULL
+-ex	extensions\source\nsplugin\source			nmake	-	w	ex_nsplugin ex_inc NULL
++#ex	extensions\source\nsplugin\source			nmake	-	u	ex_nsplugin ex_inc NULL
++#ex	extensions\source\nsplugin\source			nmake	-	w	ex_nsplugin ex_inc NULL
+ ex  extensions\source\update\feed               nmake   -   all ex_updchkfeed ex_inc NULL
+ ex  extensions\source\update\check              nmake   -   all ex_updchk ex_inc NULL
+ ex  extensions\source\update\ui                 nmake   -   all ex_updchkui ex_inc NULL
+--- reportdesign/prj/build.lst.orig	2009-07-11 14:19:00.000000000 +0200
++++ reportdesign/prj/build.lst	2009-07-11 14:19:11.000000000 +0200
+@@ -11,4 +11,4 @@
+ rd  reportdesign\source\ui\report                                       nmake   -   all rd_uireport rd_inc NULL
+ rd  reportdesign\source\ui\inspection                                   nmake   -   all rd_uiinspection rd_inc NULL
+ rd  reportdesign\source\filter\xml                                      nmake   -   all rd_filter_xml rd_inc NULL
+-rd  reportdesign\util                                                   nmake   -   all rd_util rd_api rd_res rd_shared rd_uimisc rd_uidlg rd_uireport rd_uiinspection rd_sdr rd_misc rd_filter_xml NULL
++#rd  reportdesign\util                                                   nmake   -   all rd_util rd_api rd_res rd_shared rd_uimisc rd_uidlg rd_uireport rd_uiinspection rd_sdr rd_misc rd_filter_xml NULL
diff --git a/patches/dev300/crosswin32-unixodbc-disable.diff b/patches/dev300/crosswin32-unixodbc-disable.diff
new file mode 100644
index 0000000..b6508b9
--- /dev/null
+++ b/patches/dev300/crosswin32-unixodbc-disable.diff
@@ -0,0 +1,13 @@
+--- unixODBC/prj/d.lst.orig	2009-07-07 15:05:07.000000000 +0200
++++ unixODBC/prj/d.lst	2009-07-07 15:05:21.000000000 +0200
+@@ -1,5 +1,5 @@
+-mkdir: %_DEST%\inc%_EXT%\external
+-mkdir: %_DEST%\inc%_EXT%\external\odbc
+-..\inc\sql.h %_DEST%\inc%_EXT%\external\odbc\sql.h
+-..\inc\sqlext.h %_DEST%\inc%_EXT%\external\odbc\sqlext.h
+-..\inc\sqltypes.h %_DEST%\inc%_EXT%\external\odbc\sqltypes.h
++#mkdir: %_DEST%\inc%_EXT%\external
++#mkdir: %_DEST%\inc%_EXT%\external\odbc
++#..\inc\sql.h %_DEST%\inc%_EXT%\external\odbc\sql.h
++#..\inc\sqlext.h %_DEST%\inc%_EXT%\external\odbc\sqlext.h
++#..\inc\sqltypes.h %_DEST%\inc%_EXT%\external\odbc\sqltypes.h
diff --git a/patches/dev300/crosswin32-vcl-mingw.diff b/patches/dev300/crosswin32-vcl-mingw.diff
index 6481d7c..41b1719 100644
--- a/patches/dev300/crosswin32-vcl-mingw.diff
+++ b/patches/dev300/crosswin32-vcl-mingw.diff
@@ -193,7 +193,7 @@
  	switch( GET_APPCOMMAND_LPARAM(lParam) )
  	{
  	case APPCOMMAND_MEDIA_CHANNEL_DOWN:			nCommand = MEDIA_COMMAND_CHANNEL_DOWN; break;
-@@ -5663,7 +5672,7 @@ static boolean ImplHandleAppCommand( HWN
+@@ -5663,6 +5672,6 @@ static boolean ImplHandleAppCommand( HWN
  	default:
  		return false;
  	}
@@ -204,15 +204,178 @@
 
 --- vcl/win/source/src/salsrc.rc.orig	2009-07-01 12:26:36.000000000 +0200
 +++ vcl/win/source/src/salsrc.rc	2009-07-01 13:25:14.000000000 +0200
-@@ -119,6 +119,6 @@
- SAL_RESID_POINTER_TAB_SELECT_SW         CURSOR          TBLSELSW.CUR
- SAL_RESID_POINTER_PAINTBRUSH            CURSOR          PNTBRSH.CUR
+@@ -35,90 +35,90 @@
+ #include <salids.hrc>
+ #endif
  
--SAL_RESID_BITMAP_50                             BITMAP          50.BMP
-+SAL_RESID_BITMAP_50                             BITMAP          "50.BMP"
+-SAL_RESID_POINTER_NULL				CURSOR		NULLPTR.CUR
++SAL_RESID_POINTER_NULL				CURSOR		nullptr.cur
+ #if ( WINVER < 0x0400 )
+-SAL_RESID_POINTER_HELP				CURSOR		HELP.CUR
++SAL_RESID_POINTER_HELP				CURSOR		help.cur
+ #endif
+ #ifndef WNT
+-SAL_RESID_POINTER_HSIZE 			CURSOR		HSIZE.CUR
+-SAL_RESID_POINTER_VSIZE 			CURSOR		VSIZE.CUR
+-SAL_RESID_POINTER_NESWSIZE			CURSOR		NESWSIZE.CUR
+-SAL_RESID_POINTER_NWSESIZE			CURSOR		NWSESIZE.CUR
++SAL_RESID_POINTER_HSIZE 			CURSOR		hsize.cur
++SAL_RESID_POINTER_VSIZE 			CURSOR		vsize.cur
++SAL_RESID_POINTER_NESWSIZE			CURSOR		neswsize.cur
++SAL_RESID_POINTER_NWSESIZE			CURSOR		nwsesize.cur
+ #endif
+-SAL_RESID_POINTER_CROSS 			CURSOR		CROSS.CUR
+-SAL_RESID_POINTER_MOVE				CURSOR		MOVE.CUR
+-SAL_RESID_POINTER_HSPLIT			CURSOR		HSPLIT.CUR
+-SAL_RESID_POINTER_VSPLIT			CURSOR		VSPLIT.CUR
+-SAL_RESID_POINTER_HSIZEBAR			CURSOR		HSIZEBAR.CUR
+-SAL_RESID_POINTER_VSIZEBAR			CURSOR		VSIZEBAR.CUR
+-SAL_RESID_POINTER_HAND				CURSOR		HAND.CUR
+-SAL_RESID_POINTER_REFHAND			CURSOR		REFHAND.CUR
+-SAL_RESID_POINTER_PEN				CURSOR		PEN.CUR
+-SAL_RESID_POINTER_MAGNIFY			CURSOR		MAGNIFY.CUR
+-SAL_RESID_POINTER_FILL				CURSOR		FILL.CUR
+-SAL_RESID_POINTER_ROTATE			CURSOR		ROTATE.CUR
+-SAL_RESID_POINTER_HSHEAR			CURSOR		HSHEAR.CUR
+-SAL_RESID_POINTER_VSHEAR			CURSOR		VSHEAR.CUR
+-SAL_RESID_POINTER_MIRROR			CURSOR		MIRROR.CUR
+-SAL_RESID_POINTER_CROOK 			CURSOR		CROOK.CUR
+-SAL_RESID_POINTER_CROP				CURSOR		CROP.CUR
+-SAL_RESID_POINTER_MOVEPOINT 		CURSOR		MOVEPT.CUR
+-SAL_RESID_POINTER_MOVEBEZIERWEIGHT	CURSOR		MOVEBW.CUR
+-SAL_RESID_POINTER_MOVEDATA			CURSOR		MOVEDATA.CUR
+-SAL_RESID_POINTER_COPYDATA			CURSOR		COPYDATA.CUR
+-SAL_RESID_POINTER_LINKDATA			CURSOR		LINKDATA.CUR
+-SAL_RESID_POINTER_MOVEDATALINK		CURSOR		MOVEDLNK.CUR
+-SAL_RESID_POINTER_COPYDATALINK		CURSOR		COPYDLNK.CUR
+-SAL_RESID_POINTER_MOVEFILE			CURSOR		MOVEF.CUR
+-SAL_RESID_POINTER_COPYFILE			CURSOR		COPYF.CUR
+-SAL_RESID_POINTER_LINKFILE			CURSOR		LINKF.CUR
+-SAL_RESID_POINTER_MOVEFILELINK		CURSOR		MOVEFLNK.CUR
+-SAL_RESID_POINTER_COPYFILELINK		CURSOR		COPYFLNK.CUR
+-SAL_RESID_POINTER_MOVEFILES 		CURSOR		MOVEF2.CUR
+-SAL_RESID_POINTER_COPYFILES 		CURSOR		COPYF2.CUR
+-SAL_RESID_POINTER_NOTALLOWED		CURSOR		NOTALLOW.CUR
+-SAL_RESID_POINTER_DRAW_LINE 		CURSOR		DLINE.CUR
+-SAL_RESID_POINTER_DRAW_RECT 		CURSOR		DRECT.CUR
+-SAL_RESID_POINTER_DRAW_POLYGON		CURSOR		DPOLYGON.CUR
+-SAL_RESID_POINTER_DRAW_BEZIER		CURSOR		DBEZIER.CUR
+-SAL_RESID_POINTER_DRAW_ARC			CURSOR		DARC.CUR
+-SAL_RESID_POINTER_DRAW_PIE			CURSOR		DPIE.CUR
+-SAL_RESID_POINTER_DRAW_CIRCLECUT	CURSOR		DCIRCCUT.CUR
+-SAL_RESID_POINTER_DRAW_ELLIPSE		CURSOR		DELLIPSE.CUR
+-SAL_RESID_POINTER_DRAW_FREEHAND 	CURSOR		DFREE.CUR
+-SAL_RESID_POINTER_DRAW_CONNECT		CURSOR		DCONNECT.CUR
+-SAL_RESID_POINTER_DRAW_TEXT 		CURSOR		DTEXT.CUR
+-SAL_RESID_POINTER_DRAW_CAPTION		CURSOR		DCAPT.CUR
+-SAL_RESID_POINTER_CHART 			CURSOR		CHART.CUR
+-SAL_RESID_POINTER_DETECTIVE 		CURSOR		DETECTIV.CUR
+-SAL_RESID_POINTER_PIVOT_COL 		CURSOR		PIVOTCOL.CUR
+-SAL_RESID_POINTER_PIVOT_ROW 		CURSOR		PIVOTROW.CUR
+-SAL_RESID_POINTER_PIVOT_FIELD		CURSOR		PIVOTFLD.CUR
+-SAL_RESID_POINTER_PIVOT_DELETE		CURSOR		PIVOTDEL.CUR
+-SAL_RESID_POINTER_CHAIN 			CURSOR		CHAIN.CUR
+-SAL_RESID_POINTER_CHAIN_NOTALLOWED	CURSOR		CHAINNOT.CUR
+-SAL_RESID_POINTER_TIMEEVENT_MOVE	CURSOR		TIMEMOVE.CUR
+-SAL_RESID_POINTER_TIMEEVENT_SIZE	CURSOR		TIMESIZE.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_N		CURSOR		ASN.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_S		CURSOR		ASS.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_W		CURSOR		ASW.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_E		CURSOR		ASE.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_NW 	CURSOR		ASNW.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_NE 	CURSOR		ASNE.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_SW 	CURSOR		ASSW.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_SE 	CURSOR		ASSE.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_NS 	CURSOR		ASNS.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_WE 	CURSOR		ASWE.CUR
+-SAL_RESID_POINTER_AUTOSCROLL_NSWE	CURSOR		ASNSWE.CUR
+-SAL_RESID_POINTER_AIRBRUSH              CURSOR          AIRBRUSH.CUR
+-SAL_RESID_POINTER_TEXT_VERTICAL 	CURSOR		VTEXT.CUR
+-SAL_RESID_POINTER_TAB_SELECT_S          CURSOR          TBLSELS.CUR
+-SAL_RESID_POINTER_TAB_SELECT_E          CURSOR          TBLSELE.CUR
+-SAL_RESID_POINTER_TAB_SELECT_SE         CURSOR          TBLSELSE.CUR
+-SAL_RESID_POINTER_TAB_SELECT_W          CURSOR          TBLSELW.CUR
+-SAL_RESID_POINTER_TAB_SELECT_SW         CURSOR          TBLSELSW.CUR
+-SAL_RESID_POINTER_PAINTBRUSH            CURSOR          PNTBRSH.CUR
++SAL_RESID_POINTER_CROSS 			CURSOR		cross.cur
++SAL_RESID_POINTER_MOVE				CURSOR		move.cur
++SAL_RESID_POINTER_HSPLIT			CURSOR		hsplit.cur
++SAL_RESID_POINTER_VSPLIT			CURSOR		vsplit.cur
++SAL_RESID_POINTER_HSIZEBAR			CURSOR		hsizebar.cur
++SAL_RESID_POINTER_VSIZEBAR			CURSOR		vsizebar.cur
++SAL_RESID_POINTER_HAND				CURSOR		hand.cur
++SAL_RESID_POINTER_REFHAND			CURSOR		refhand.cur
++SAL_RESID_POINTER_PEN				CURSOR		pen.cur
++SAL_RESID_POINTER_MAGNIFY			CURSOR		magnify.cur
++SAL_RESID_POINTER_FILL				CURSOR		fill.cur
++SAL_RESID_POINTER_ROTATE			CURSOR		rotate.cur
++SAL_RESID_POINTER_HSHEAR			CURSOR		hshear.cur
++SAL_RESID_POINTER_VSHEAR			CURSOR		vshear.cur
++SAL_RESID_POINTER_MIRROR			CURSOR		mirror.cur
++SAL_RESID_POINTER_CROOK 			CURSOR		crook.cur
++SAL_RESID_POINTER_CROP				CURSOR		crop.cur
++SAL_RESID_POINTER_MOVEPOINT 		CURSOR		movept.cur
++SAL_RESID_POINTER_MOVEBEZIERWEIGHT	CURSOR		movebw.cur
++SAL_RESID_POINTER_MOVEDATA			CURSOR		movedata.cur
++SAL_RESID_POINTER_COPYDATA			CURSOR		copydata.cur
++SAL_RESID_POINTER_LINKDATA			CURSOR		linkdata.cur
++SAL_RESID_POINTER_MOVEDATALINK		CURSOR		movedlnk.cur
++SAL_RESID_POINTER_COPYDATALINK		CURSOR		copydlnk.cur
++SAL_RESID_POINTER_MOVEFILE			CURSOR		movef.cur
++SAL_RESID_POINTER_COPYFILE			CURSOR		copyf.cur
++SAL_RESID_POINTER_LINKFILE			CURSOR		linkf.cur
++SAL_RESID_POINTER_MOVEFILELINK		CURSOR		moveflnk.cur
++SAL_RESID_POINTER_COPYFILELINK		CURSOR		copyflnk.cur
++SAL_RESID_POINTER_MOVEFILES 		CURSOR		movef2.cur
++SAL_RESID_POINTER_COPYFILES 		CURSOR		copyf2.cur
++SAL_RESID_POINTER_NOTALLOWED		CURSOR		notallow.cur
++SAL_RESID_POINTER_DRAW_LINE 		CURSOR		dline.cur
++SAL_RESID_POINTER_DRAW_RECT 		CURSOR		drect.cur
++SAL_RESID_POINTER_DRAW_POLYGON		CURSOR		dpolygon.cur
++SAL_RESID_POINTER_DRAW_BEZIER		CURSOR		dbezier.cur
++SAL_RESID_POINTER_DRAW_ARC			CURSOR		darc.cur
++SAL_RESID_POINTER_DRAW_PIE			CURSOR		dpie.cur
++SAL_RESID_POINTER_DRAW_CIRCLECUT	CURSOR		dcirccut.cur
++SAL_RESID_POINTER_DRAW_ELLIPSE		CURSOR		dellipse.cur
++SAL_RESID_POINTER_DRAW_FREEHAND 	CURSOR		dfree.cur
++SAL_RESID_POINTER_DRAW_CONNECT		CURSOR		dconnect.cur
++SAL_RESID_POINTER_DRAW_TEXT 		CURSOR		dtext.cur
++SAL_RESID_POINTER_DRAW_CAPTION		CURSOR		dcapt.cur
++SAL_RESID_POINTER_CHART 			CURSOR		chart.cur
++SAL_RESID_POINTER_DETECTIVE 		CURSOR		detectiv.cur
++SAL_RESID_POINTER_PIVOT_COL 		CURSOR		pivotcol.cur
++SAL_RESID_POINTER_PIVOT_ROW 		CURSOR		pivotrow.cur
++SAL_RESID_POINTER_PIVOT_FIELD		CURSOR		pivotfld.cur
++SAL_RESID_POINTER_PIVOT_DELETE		CURSOR		pivotdel.cur
++SAL_RESID_POINTER_CHAIN 			CURSOR		chain.cur
++SAL_RESID_POINTER_CHAIN_NOTALLOWED	CURSOR		chainnot.cur
++SAL_RESID_POINTER_TIMEEVENT_MOVE	CURSOR		timemove.cur
++SAL_RESID_POINTER_TIMEEVENT_SIZE	CURSOR		timesize.cur
++SAL_RESID_POINTER_AUTOSCROLL_N		CURSOR		asn.cur
++SAL_RESID_POINTER_AUTOSCROLL_S		CURSOR		ass.cur
++SAL_RESID_POINTER_AUTOSCROLL_W		CURSOR		asw.cur
++SAL_RESID_POINTER_AUTOSCROLL_E		CURSOR		ase.cur
++SAL_RESID_POINTER_AUTOSCROLL_NW 	CURSOR		asnw.cur
++SAL_RESID_POINTER_AUTOSCROLL_NE 	CURSOR		asne.cur
++SAL_RESID_POINTER_AUTOSCROLL_SW 	CURSOR		assw.cur
++SAL_RESID_POINTER_AUTOSCROLL_SE 	CURSOR		asse.cur
++SAL_RESID_POINTER_AUTOSCROLL_NS 	CURSOR		asns.cur
++SAL_RESID_POINTER_AUTOSCROLL_WE 	CURSOR		aswe.cur
++SAL_RESID_POINTER_AUTOSCROLL_NSWE	CURSOR		asnswe.cur
++SAL_RESID_POINTER_AIRBRUSH              CURSOR          airbrush.cur
++SAL_RESID_POINTER_TEXT_VERTICAL 	CURSOR		vtext.cur
++SAL_RESID_POINTER_TAB_SELECT_S          CURSOR          tblsels.cur
++SAL_RESID_POINTER_TAB_SELECT_E          CURSOR          tblsele.cur
++SAL_RESID_POINTER_TAB_SELECT_SE         CURSOR          tblselse.cur
++SAL_RESID_POINTER_TAB_SELECT_W          CURSOR          tblselw.cur
++SAL_RESID_POINTER_TAB_SELECT_SW         CURSOR          tblselsw.cur
++     SAL_RESID_POINTER_PAINTBRUSH            CURSOR          pntbrsh.cur
  
- SAL_RESID_ICON_DEFAULT				ICON		SD.ICO
+-SAL_RESID_BITMAP_50                             BITMAP          50.BMP
++SAL_RESID_BITMAP_50                             BITMAP          "50.bmp"
  
+-SAL_RESID_ICON_DEFAULT				ICON		SD.ICO
++SAL_RESID_ICON_DEFAULT				ICON		sd.ico
 --- vcl/util/makefile.mk.pristine	2009-04-04 19:55:53.764002766 +0200
 +++ vcl/util/makefile.mk	2009-04-04 19:55:42.260224623 +0200
 @@ -229,13 +229,16 @@ SHL1STDLIBS += $(PSPLIB)
diff --git a/patches/dev300/crosswin32-writerperfect-cross.diff b/patches/dev300/crosswin32-writerperfect-cross.diff
new file mode 100644
index 0000000..6144f61
--- /dev/null
+++ b/patches/dev300/crosswin32-writerperfect-cross.diff
@@ -0,0 +1,11 @@
+--- writerperfect/util/makefile.mk.orig	2009-07-07 00:57:12.000000000 +0200
++++ writerperfect/util/makefile.mk	2009-07-07 01:05:50.000000000 +0200
+@@ -12,7 +12,7 @@
+ .ENDIF
+ .ELSE
+ .IF "$(GUI)$(COM)"=="WNTGCC"
+-LIBWPD=-lwpdlib
++LIBWPD=-lwpd-0.8
+ .ELSE
+  LIBWPD=$(LIBPRE) wpdlib.lib
+ .ENDIF


More information about the ooo-build-commit mailing list