Index: /diffs/psi_0.16.diff
===================================================================
--- /diffs/psi_0.16.diff	(revision 152)
+++ /diffs/psi_0.16.diff	(revision 152)
@@ -0,0 +1,1240 @@
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/configure trunk/configure
+--- vendor/current/configure	2013-12-03 18:34:22.000000000 +0100
++++ trunk/configure	2013-12-05 13:55:18.000000000 +0100
+@@ -1000,12 +1000,12 @@
+ 	qc_qdbus(Conf *c) : ConfObj(c) {}
+ 	QString name() const { return "QDBUS"; }
+ 	QString shortname() const { return "qdbus"; }
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 	QString checkString() const { return QString(); }
+ #endif
+ 	bool exec()
+ 	{
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 		// skip dbus support on windows
+ 		return false;
+ #else
+@@ -1358,6 +1358,7 @@
+ };
+ #line 1 "enchant.qcm"
+ /*
++
+ -----BEGIN QCMOD-----
+ name: enchant
+ -----END QCMOD-----
+@@ -1884,18 +1885,36 @@
+ 	QString path = qc_getenv("PATH");
+ 	if(!path.isEmpty())
+ 	{
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 		list = path.split(';', QString::SkipEmptyParts);
+ #else
+ 		list = path.split(':', QString::SkipEmptyParts);
+ #endif
+ 	}
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 	list.prepend(".");
+ #endif
+ 	return list;
+ }
+ 
++#ifdef Q_OS_OS2
++QStringList qc_getpath(const int type)
++{
++	QStringList list;
++        QString path;
++	if (type == 1)
++	path = qc_getenv("CPLUS_INCLUDE_PATH");
++	else
++	path = qc_getenv("LIBRARY_PATH");
++
++	if(!path.isEmpty())
++	{
++		list = path.split(';', QString::SkipEmptyParts);
++	}
++	return list;
++}
++#endif
++
+ QString qc_findprogram(const QString &prog)
+ {
+ 	QString out;
+@@ -1909,7 +1928,7 @@
+ 			break;
+ 		}
+ 
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 		// on windows, be sure to look for .exe
+ 		if(prog.right(4).toLower() != ".exe")
+ 		{
+@@ -1927,7 +1946,7 @@
+ 
+ QString qc_findself(const QString &argv0)
+ {
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 	if(argv0.contains('\\\\'))
+ #else
+ 	if(argv0.contains('/'))
+@@ -2380,6 +2399,9 @@
+ 	QStringList dirs;
+ 	dirs += "/usr/local/include";
+ 	dirs += ext;
++#ifdef Q_OS_OS2
++	dirs += qc_getpath(1);
++#endif
+ 	for(QStringList::ConstIterator it = dirs.begin(); it != dirs.end(); ++it)
+ 	{
+ 		if(checkHeader(*it, h))
+@@ -2422,6 +2444,18 @@
+ 		*lib = "/usr/local/lib";
+ 		return true;
+ 	}
++#ifdef Q_OS_OS2
++	QStringList dirs;
++	dirs += qc_getpath(2);
++	for(QStringList::ConstIterator it = dirs.begin(); it != dirs.end(); ++it)
++	{
++		if(checkLibrary(*it, name))
++		{
++			*lib = *it;
++			return true;
++		}
++	}
++#endif
+ 	return false;
+ }
+ 
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/irisnet/corelib/corelib.pri trunk/iris/src/irisnet/corelib/corelib.pri
+--- vendor/current/iris/src/irisnet/corelib/corelib.pri	2013-08-22 16:54:12.000000000 +0200
++++ trunk/iris/src/irisnet/corelib/corelib.pri	2013-08-22 17:19:58.000000000 +0200
+@@ -30,6 +30,11 @@
+ 		$$PWD/netinterface_unix.cpp
+ }
+ 
++os2 {
++	SOURCES += \
++		$$PWD/netinterface_unix.cpp
++}
++
+ windows {
+ 	SOURCES += \
+ 		$$PWD/netinterface_win.cpp
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/irisnet/corelib/irisnetglobal.cpp trunk/iris/src/irisnet/corelib/irisnetglobal.cpp
+--- vendor/current/iris/src/irisnet/corelib/irisnetglobal.cpp	2012-10-04 02:53:08.000000000 +0200
++++ trunk/iris/src/irisnet/corelib/irisnetglobal.cpp	2012-10-16 17:42:50.000000000 +0200
+@@ -28,7 +28,7 @@
+ #ifdef Q_OS_WIN
+ extern IrisNetProvider *irisnet_createWinNetProvider();
+ #endif
+-#ifdef Q_OS_UNIX
++#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
+ extern IrisNetProvider *irisnet_createUnixNetProvider();
+ #endif
+ extern IrisNetProvider *irisnet_createJDnsProvider();
+@@ -183,7 +183,7 @@
+ #ifdef Q_OS_WIN
+ 			addBuiltIn(irisnet_createWinNetProvider());
+ #endif
+-#ifdef Q_OS_UNIX
++#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
+ 			addBuiltIn(irisnet_createUnixNetProvider());
+ #endif
+ 			addBuiltIn(irisnet_createJDnsProvider());
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/irisnet/corelib/netinterface_unix.cpp trunk/iris/src/irisnet/corelib/netinterface_unix.cpp
+--- vendor/current/iris/src/irisnet/corelib/netinterface_unix.cpp	2012-10-04 02:53:08.000000000 +0200
++++ trunk/iris/src/irisnet/corelib/netinterface_unix.cpp	2012-10-18 15:13:40.000000000 +0200
+@@ -97,8 +97,10 @@
+ 
+ 		if(((struct sockaddr *)&ifr->ifr_addr)->sa_family == AF_INET) {
+ 			sockaddr_len = sizeof(struct sockaddr_in);
++#ifndef Q_OS_OS2
+ 		} else if(((struct sockaddr *)&ifr->ifr_addr)->sa_family == AF_INET6) {
+ 			sockaddr_len = sizeof(struct sockaddr_in6);
++#endif
+ 		} else {
+ 			sockaddr_len = sizeof(struct sockaddr);
+ 		}
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/irisnet/noncore/cutestuff/socks.cpp trunk/iris/src/irisnet/noncore/cutestuff/socks.cpp
+--- vendor/current/iris/src/irisnet/noncore/cutestuff/socks.cpp	2013-08-22 16:54:12.000000000 +0200
++++ trunk/iris/src/irisnet/noncore/cutestuff/socks.cpp	2013-08-22 17:30:26.000000000 +0200
+@@ -27,7 +27,7 @@
+ #include <QSocketNotifier>
+ #include <QByteArray>
+ 
+-#ifdef Q_OS_UNIX
++#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
+ #include <sys/types.h>
+ #include <netinet/in.h>
+ #endif
+@@ -36,7 +36,7 @@
+ #include <windows.h>
+ #endif
+ 
+-#ifdef Q_OS_UNIX
++#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
+ #include <unistd.h>
+ #include <fcntl.h>
+ #endif
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/irisnet/noncore/turnclient.cpp trunk/iris/src/irisnet/noncore/turnclient.cpp
+--- vendor/current/iris/src/irisnet/noncore/turnclient.cpp	2013-08-22 16:54:12.000000000 +0200
++++ trunk/iris/src/irisnet/noncore/turnclient.cpp	2013-08-22 17:49:06.000000000 +0200
+@@ -29,7 +29,11 @@
+ #include "bytestream.h"
+ #include "bsocket.h"
+ #include "httpconnect.h"
++#ifdef Q_OS_OS2
++#include "../cutestuff/socks.h"
++#else
+ #include "socks.h"
++#endif
+ 
+ namespace XMPP {
+ 
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/jdns/jdns_p.h trunk/iris/src/jdns/jdns_p.h
+--- vendor/current/iris/src/jdns/jdns_p.h	2012-10-04 02:53:08.000000000 +0200
++++ trunk/iris/src/jdns/jdns_p.h	2012-10-16 16:32:36.000000000 +0200
+@@ -32,6 +32,8 @@
+ 
+ #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+ # define JDNS_OS_WIN
++#elif (__OS2__) || (OS2) || (_OS2)
++# define JDNS_OS_OS2
+ #else
+ # define JDNS_OS_UNIX
+ #endif
+@@ -50,7 +52,7 @@
+ # include <windows.h>
+ #endif
+ 
+-#ifdef JDNS_OS_UNIX
++#if defined(JDNS_OS_UNIX) || defined(JDNS_OS_OS2)
+ # include <unistd.h>
+ # include <netinet/in.h>
+ #endif
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/jdns/jdns_sys.c trunk/iris/src/jdns/jdns_sys.c
+--- vendor/current/iris/src/jdns/jdns_sys.c	2013-12-03 19:04:08.000000000 +0100
++++ trunk/iris/src/jdns/jdns_sys.c	2013-12-05 13:57:44.000000000 +0100
+@@ -117,7 +117,7 @@
+ # include <windows.h>
+ #endif
+ 
+-#ifdef JDNS_OS_UNIX
++#if defined(JDNS_OS_UNIX) || defined(JDNS_OS_OS2)
+ # include <netinet/in.h>
+ # include <arpa/nameser.h>
+ # include <resolv.h>
+@@ -632,7 +632,7 @@
+ 
+ #endif
+ 
+-#ifdef JDNS_OS_UNIX
++#if defined(JDNS_OS_UNIX) || defined(JDNS_OS_OS2)
+ 
+ static jdns_dnsparams_t *dnsparams_get_unixfiles()
+ {
+@@ -644,7 +644,13 @@
+ 
+ 	params = jdns_dnsparams_new();
+ 
++#ifdef JDNS_OS_OS2
++	char resolvFile[MAXPATHLEN];
++	sprintf(resolvFile, "%s/resolv2", getenv("ETC"));
++	f = jdns_fopen(resolvFile, "r");
++#else
+ 	f = jdns_fopen("/etc/resolv.conf", "r");
++#endif
+ 	if(!f)
+ 		return params;
+ 	while(1)
+@@ -717,8 +723,13 @@
+ 		return -1;
+ 	return mac_res_init();
+ #else
++#ifdef JDNS_OS_OS2 // on os2 we don't care about returncode
++	res_init();
++	return 0;
++#else
+ 	return res_init();
+ #endif
++#endif
+ }
+ #endif
+ 
+@@ -752,6 +763,7 @@
+ 	if(n == -1)
+ 		return params;
+ 
++#ifndef JDNS_OS_OS2 //no ipv6 on os2
+ 	// nameservers - ipv6
+ #ifdef __GLIBC__
+ 	for(n = 0; n < MAXNS && n < RESVAR._u._ext.nscount6; ++n)
+@@ -780,6 +792,7 @@
+ 		jdns_address_delete(addr);
+ 	}
+ 
++#endif
+ 	// nameservers - ipv4
+ 	for(n = 0; n < MAXNS && n < RESVAR.nscount; ++n)
+ 	{
+@@ -841,7 +854,13 @@
+ 		params = dnsparams_get_unixfiles();
+ 	}
+ 
++#ifdef JDNS_OS_OS2
++	char hostsFile[MAXPATHLEN];
++	sprintf(hostsFile, "%s/hosts", getenv("ETC"));
++	apply_hosts_file(params, hostsFile);
++#else
+ 	apply_hosts_file(params, "/etc/hosts");
++#endif
+ 
+ 	return params;
+ }
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/jdns/qjdns_sock.cpp trunk/iris/src/jdns/qjdns_sock.cpp
+--- vendor/current/iris/src/jdns/qjdns_sock.cpp	2012-10-04 02:53:08.000000000 +0200
++++ trunk/iris/src/jdns/qjdns_sock.cpp	2012-10-16 16:48:10.000000000 +0200
+@@ -33,7 +33,7 @@
+ # include <ws2tcpip.h>
+ #endif
+ 
+-#ifdef Q_OS_UNIX
++#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
+ # include <sys/time.h>
+ # include <sys/types.h>
+ # include <sys/socket.h>
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/xmpp/xmpp-core/connector.cpp trunk/iris/src/xmpp/xmpp-core/connector.cpp
+--- vendor/current/iris/src/xmpp/xmpp-core/connector.cpp	2013-08-22 16:54:12.000000000 +0200
++++ trunk/iris/src/xmpp/xmpp-core/connector.cpp	2013-08-22 18:01:58.000000000 +0200
+@@ -40,7 +40,11 @@
+ #include "bsocket.h"
+ #include "httpconnect.h"
+ #include "httppoll.h"
++#ifdef Q_OS_OS2
++#include "../../irisnet/noncore/cutestuff/socks.h"
++#else
+ #include "socks.h"
++#endif
+ 
+ //#define XMPP_DEBUG
+ 
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/iris/src/xmpp/xmpp-im/s5b.cpp trunk/iris/src/xmpp/xmpp-im/s5b.cpp
+--- vendor/current/iris/src/xmpp/xmpp-im/s5b.cpp	2013-08-22 16:54:12.000000000 +0200
++++ trunk/iris/src/xmpp/xmpp-im/s5b.cpp	2013-08-22 18:06:04.000000000 +0200
+@@ -27,7 +27,11 @@
+ #include <qca.h>
+ #include "xmpp_xmlcommon.h"
+ #include "im.h"
++#ifdef Q_OS_OS2
++#include "../../irisnet/noncore/cutestuff/socks.h"
++#else
+ #include "socks.h"
++#endif
+ #include "safedelete.h"
+ 
+ #ifdef Q_OS_WIN
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/os2/app.ico trunk/os2/app.ico
+--- vendor/current/os2/app.ico	1970-01-01 01:00:00.000000000 +0100
++++ trunk/os2/app.ico	2012-10-18 21:15:20.000000000 +0200
+@@ -0,0 +1,30 @@
++BA(HCI°
++
+ ÿÿÿCI0
+
+R0ðŒÿÝ§ÿÅ€ g@ÿÿÿÿÿÿÿÿÿÿÿÿðûÿÞZÔðÿ±âÿÔÿkÆÿHžÿ%ªÿªÿÜz¹bJs2PÔãÿ±Çÿ«ÿkÿHsÿ%WÿUÿIÜ=¹1%sPÔÔÿ±±ÿÿkkÿHHÿ%%ÿÿÜ¹sPà¹Å y«ÿkÿsHÿW%ÿUÿIÜ=¹1%sPðÔÿå§xÔÿÆkÿžHÿª%ÿªÿÜz¹bJs2PýÏÿ±ÿÿÿÿkÿÿHÿÿ%ÿÿÿÜÜ¹¹ssPPÿÐÿštÿTÿkÆÿHžÿ%ªÿªÜ¹zb}V:iO:ÿœÿÇ¡ìÖgî
+YóFÿWß~C¹uHŠN&u9#PÿÔŽÿŸÒzÒpeãaAóMÿÜ¹sPÿÃÿÂŠÒ{êwhÉn]íkHíHŽO/¹5(y6
+z4PÿôàÿÐšÿÖ°åtê_ãWÿ kÜ]»`:¯eFA3T0
+ÿØÿ»uÿµuÿ²|ÿLÿ¢XÿÿÜÜÁoCfD{D*vO4ÿÚ¥ýÄÿÀÿ«jáLªÿ%ªÿÜz¹bJs2PÿûÇßºî¿ÿksÿHWÿ%UÿIÜ=¹1%sPÔÿÔ±ÿ±ÿkÿkHÿH%ÿ%ÿÜ¹sPÔÿã±ÿÇÿ«kÿHÿs%ÿWÿUÜI¹=1s%PÔÿð±ÿâÿÔkÿÆHÿž%ÿªÿªÜ¹zbsJP2Ôÿÿ±ÿÿÿÿkÿÿHÿÿ%ÿÿÿÿÜÜ¹¹ssPPùàµÿã«ÿÑýÏû¿ëšvï hÝk·jÓfÖxFrS{Y9WFfK3_B.Q6"&&&BA(CI0
+
+ @ÿÿÿCI0
+
+  #	;=>>>??AB	C
++E
+
+F
+
+F
+
+G
+G!I#J$L%O%R&T&V'X'Y'[%]#
+^"
+b"
+e"
+h"
+k"
+n#
+q$
+s't)u)x)|,.000-,,++,£-©/¬/²-·+º+Ÿ.¿2Ÿ6»:
+ž=ŽB"°F%¬J(¥N, R.U1W3 Z5¢]6€_7¥_7§_7ª`8®`8±a8µb8ºb7Àb5Å_2Ê^1Ñ]0Ø_1Úa3Úd5Øh9Öl=ÓpBÐvHÏzLÍ}OËQÉTÊVÊXÊYÌZÎ[Ï[Ñ[Ó[ÕZØZÝXßWá~Uã|TæzRèzNézLê{Kì|KìLíMîNðNóNõO÷OùNúOüNüPýTýVþWþYþ\þ ^þ `ý¡aý¡cü¡dû¡eøgõhñjíléoçqærérë rî¢rñ£rô£rõ¥røšrúªqü«qý¬rý¬sþ®uþ®wþ¯yý°zý±|ü³~ü³ü³ûŽü·ý»úœù¿÷¿öÀõÀöÀ÷Ÿùœúœüœýœý¿þÀþÂþÅþÇþÉþËýÌýÌýÍþÏþÍ¡þÍ£þË¥þË§þÊ©þÊ«þÌ¯þÏ²þÐŽþÑ¶þÔ¶þÖ¶þÙµþÛ³þÝ²þÞ±þß±þà²þá²þâ³þãŽþäµþæ·þæ·þçžþç¹þèºþé»þéŒþéœþéŸþé¿þéÀþéÀþéÁþêÃþêÆþêÉþëÌþìÏþíÑþîÔþïÕÿÿÿÿñØBA(Ø	CI0
+0`ÿÿÿCI0
+00
+
+"
++&
+*
+-/149>BHMSVZ`$
++b%
+d'
+h'
+j)
+n*
+o+r-t-v,y)
+|%
+&
+&
+&
+&
+&
+&
++,
+269 ;€;š;š7©5«2®/
+°,
+²*
+³*
+µ+
+ž,
+»-
+Ÿ-
+Å-
+Ì/Ò2Ù6Ü8Þ<Þ?Ý@ÜAÛBÚC×DÕEÕF×GÛJ
+ÜM ÝO"ÝP$ßT&áV'äY(è[*ê^,ìa-íb.îc/ðc0ðd0ðd2ïd5îd6ìd7éd7æd6äd6âd6ßc6Üc6Úb6Øb5Öd4Ób2Ïa1Ìa1É`0Æ`0Ã_/À^.º^-¶_-µ_.µ`/žc1œf4Ái8Êo=ÏsAÒvCÔwFÕyH×}JÙLÛNÝOßOâOäNåNèNëMî~Kò|Hö|EøzBøy@øy@ùz@ü}BüBýBþ
+BþDþEþEþFþHþIþKþLþNþPþRþTþVþWüXþZý[ý\ý]ü_ý`ý`ý`ý aý¡bþ£dþ¥eþ§fþšhþ©jþªký©lüšmý©nþªoþ«pþ¬pþ¬rý«sü¬uú¬vø­xú°yý±{þ²|þ³{þ±|ý²~üŽüµ
+ü¶ý¹þœþŸþ¿
+þÀþÂþÃþÅþÆþÇþÉþÉþÇþÁþŸþœþœþœþ¿þÁ þÂ¡þÂ¡þÃ¢þÃ¡þÅ¡ÿÿÿþËþÍþÏþÐþÑþÒþÑ¢þÑ¥þÑ§þÐ©þÎ­þÎ°þÏ³þÏ¶þÑ·þÔžþØ¶þÛ³þÞ²þá³þã¶þæŒþçÁþçÆþçÊþèÎþêÑþëÓþï×þðØBA( 
++CI0
+
+ ÿÿÿCI°
+
+BA(h
++CI° 
+ @ÿÿÿCI°!
+  BA(CI°-
+0`ÿÿÿCI°0
+00ÿÿøÿøààääGægâgÂ'Â'ç7ÿ1ÿÿÿ÷8ìg±°9ü£Pî€í²f\ñð¥Eï¡hóò¢ ŠŠ§ö
++šp^onyq]miõrtklux
+	jûúø÷ôùvwÿÿÿÿÿÿÿÿÿÁÿÿÿÁÿÿÿÀÿÿÿÿþÿþÿüÿüÿø0@ø0`ø80?ü8?ü8?ü<þ
+
+þ
+
+ø
+
+ð
+
+ð
+ð
+ð
+
+ÿþÿÿÿÛÿÿÿÿÿÿ'ÿÿGÿÿÿÿÿÿÿÿ?ºÂÂÑuÀÿ÷ÿ¿_ñæîÑ%[ìááäŠs\,>žèèÔÒÒÔèëèÐz3ÌçÎÎÎÎÎÎÎÎÎÒèÎ_€àœŸÒÒÐŸÌÔÒÒÌœÒÔgÌœŒÏ£iœŸŒÌqÏÌŒËÒ^eÌ³œ­£Ÿ³ÍchŸŒ²ŸŒ3pŒ²ŒsŒ²ŒnŒ²²ŸsoŽŽtŽ°²¯)¶²²4!²D²]Bhplik&6A»Æ°;ÕÉºHoI@iÊÉÆWlÊÈÊjk»¹¯XFpÆÇËoU¹ÕÓj¶¹³WkÆÉÆÇÇ×q ØÕ 7kŽ¹²WÊÕ×ÙÝËWpØ×»KlËËÉXSl¬º«lTÊØÕkTmlmLP¹ÜÙ
+ÞÜ³;3.-lÝÜÈL[¯Šº¿zO×ÞÜlAùvä`Çÿÿ«
+\õÀvïÜÙºIr~Aö{QQQQ\õºŠû¥
+Tÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿþ?ÿÿÿøÿÿÿàÿÿÿÀÿÿÿÀ?ÿÿÿÿÿÿÿÿÀ`ÿÿÀ0ÿÿÀ8ÿÿà<ÿÿà>ÿÿà
+ÿÿàÿÿðÿÿpÿÿÀpÿÿÀxÿÿÀ8ÿÿ@8ÿþ8ÿþ<ÿü<ÿü<ÿø<ÿü~ÿÿþÿÿÿÿþÿÿÿÿÿþÿÿÿÿÌGÿÿÿÈÇÿÿÿØÇÿÿÿðÿÿÿáÿÿÿcÿÿÿfÿÿÿÿø?ÿÿÿÿðÿÿÿÿðÿÿÿÿÿóÿ¶ŸŸŸŸÄ£Óÿÿÿÿÿô!ü÷öõù÷44ôøõõ÷ùx$Âùôôõú
+4µéùèèç÷òÉœy( çøøõéççæçô÷øø÷ä«5(µ÷õæåååååååååååçô÷ëš4­÷èÒÓÓÒÓÒÓÓÓäÓÓÒÒÒÓë÷Îs}óæÎÐÏÑçëèÐÐÐäëêæÑÏÐÏÑôælÁêÊÍÌÑëÕ·èÑÌÌÓâœÔëäÌÍÌÌéãouãÏÉÉËê«66ÇÓÉÉÌâm4ÔèÊÉÊÉèÎ7|äÂÂÂÓŸ,šâÂÂÂäkÀçÉÂÂÂè®!ÑÂÂÂÔ}}ÔÂÂÂÏº
+W»ÔÂÂÂÂÓ{Ì¹¹ÂÍuoÅÂ¹¹ÂÉ4YÀÉ³¹³Ìº(É³³¹Éy®Â±³¹ËrdÉ¹³³¹ËopÂ±¯¯ÂÂ¯¯¯Â€Â¯¯¯Â§
+6®±¬«¹§!j¹®­¬³š!m¹¯¬«°Ž5±¡¡¬¯67ª­¢¢­®5°¡¢¢³kh­  ®i­  ­ne­  ­O¡
+k¢ T (3P%5X©®º²U×ÈÆÈ®7]R8ªÖ×ÚÖ`×ÚÙÚÅTV²¶¢U
+Ö××Ü€.R»ßÙÙÖaOµÆÃÃŽWV_1*\××ØÜ»7;ŠÞÙÙÛ*8©ÆÃÃ»ZÄ¥ŠÙØÙÜÆSßÛÙÜŽ::§ÆÃÀ»\<€ÙØ×ÙÙÙÚÞ×TTÈÞÚßÆR;€ÆÃÀ»\SÃ×Æ×ØÙÙÚìÆNAºìÛÛÚa?€ÆÃÃ»[>[ÃßààÞàìîî=0ìÞÜà,B»íàßÚ_FRŒÚìííÖGYààÜì·@GSDEITVTGDEÆíÞìÈI>Šðììà\
+bñîìï/LÞðíïÃBµ&ŸuCÆúïïÛIÊ±&õõÉ÷w0Šúïïïa
+Q~ÿÆÓç(aòñïñŠ0røütxüÄHðýñúÛDŠÿÿÅÿ}Cïþýýûb
+ÚðmiÿÔ@UjjjjJ=9*nùùr*ÿüaïÿïVÛûBEEøÿðÿðàÀÀÀCÀà#þÿÿÿã
+	u=à¹ùàµiO:3
+ßºÿûÇÅ yQ6"
+vO4ýÏÿÝ§ÿÑÿÚ¥ÿã«î¿}V:k1ðŒÿÐëšvû¿ýÄå§xýÏÿØfDÏtCÿœÝkd%
+ï hÿÃ{D*ÁoCÿÀÿÀT0
+Ê_1ÿ«jÞZA	ÖxFÿ»u g@áLÿ»u¹uHd
+	íHÿTW'D ÿ¢Xß~C¥B
+ÿWóM%ŠN&ÿµuR0Mÿ kÿštH
+fóFÿLK 
+y6
+»`:ÿÇ¡Óf,Ü]ÿÐšu9#ãWÿ²|`)"
++ê_ÿÐšÿÔŽÖg<ŽO/ÿÖ°¯eF6î
+YÿŸl,Ì+×:
+ãaAíkH)±'ÿÅ€åt.p)z4.
+iìÿÂŠRW1_B.fK3{Y9%
+Én]ÿôàA3X)Ò{rS·jF%·*êwh¹5(a
+WFÒzp;&
+ÒpeŒG0ÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüÿüÿøøø?ø ?ø0øøüüøð
+ð
+àà
+àø
+ÿþÿþÿÿÿÿÿÿÿÿÿÿþÿÿþ 
+
+Þx/íµ
+èÂèÁôÊ ·Q
+^+ïœÿÿßÿôÆÿÿÜÝž	¢d6ÿíŸÿâ®ÿí»óÍE1P+Õcÿâ¹ÿÝ©ÿÝšÿàµÛq­wMU1K$
+	o8óŽÿåµÿäŽÿ×€ÿÔÿÓÿ×£ÿä³ÿè¶ÿä³ÿÍÊZY*l4ýÇÿã³ÿÎÿÌÿÏÿÎÿÎÿÎÿÎÿÏÿÎÿÕ¡ÿä³ýË¡\45åjÿÛ©ÿÃÿÅÿÒÿÑ¡þÎÿÅÿÇþÐ€ÿÐ ÿÕ¡ÿÇÿÃÿÒÿÙ¥ºn?A
+ÿÈÿÂÿœÿÎîkÅd2üœÿÂÿ¿ÿÇÌsCÖ]ÿÍÿÇÿŒ}ÿÅÿÒ¡Z0³a7ÿÈÿ¶vÿÁòšwl(
+bîkÿÃÿµvÿÊªb>¿`2ÿŸÿÁ
+ÿŽtÿÃÿº`)×q>ÿŒÿ®lÿÁÆzLà}Iÿ¿ÿ®nÿ¿Þ`ên5ÿºÿŽuÿ®lÿÄÏ|LÖg5ÿŽyÿšeÿžxÑ}NÂY,ÿ³xÿ¬jÿ±oü©oG
+
+äyFÿž|ÿ©gÿ°oÿ®s]&±I!ü¥iÿ€aÿ©fù^=«?úbÿšfÿ£`ÿ®nA"3þcÿ©fÿ¡_ÿ²qªX1p$
+òNÿ¢]ÿUÿ¥b9
+*
+ì~Fÿ€aÿUÿ§bÀd8àn;ÿŠbÿTÿ€aæ~IÕc1ÿWÿKÿTÂ\.ÏZ+ÿUÿFÿOîz?&	×Q#ÿTÿOÿRÿOO
+
+7ÿGÿHÿRí|@,
+«9ÿVÿ eÿ bÿR\
+ 2õ}=ÿCÿBÿGv/7óIÿžÿŒÿŠrl#
+#úWÿÆ£ÿÀÿµ7Hån8ÿ¡dÿOÿC:2)
+2ÅV,ÿÂÿÀÿœ³J"Ü_1ÿÁÿ¿ÿÂÉY-
+Ï]1ÿµÿ®ÿ§p¬E
++ÿZßn>çtCÿŒÿœÿÅØi<	ž9ÿ²ÿÄ¢ÿÅ¡ë|L/ËR'ÿ°ÿ®ÿ¬w·J"7ÎS)ÿ»ÿÀÿŒÿºÿœÿÊšàpCuýgÿÊªÿÇŠÿmcÖO$ÿ®~ÿ¬ÿ©u»I!©"ós>ÿÂÿÈŠÿÉªÿË®ÿÓžÿÅÆH"e
+ãl?ÿÌ«ÿÆªÿ¶1áV*ÿÅÿÃÿÀÂK$	Ã)×4æY.ó_ø€ù«øvçY.vÊBÿÂÿÈ®ÿÆ£ÐS+Ç:Üa6Ù^6ã_4¥0Ê
+Í
+Ñ#Ñ&Õ ²Ž!þªÿÏ·ÿÍ°õyK8;
++
+	óYÿÖÀÿÏºÿxnB
+
+Y2
+?%P2Z7
+G+>ØP1ÿÔŸÿÑ¿ÿŸŠ)£W-û­iG×ŠuÝŽ9öÄŸZ¯%ÿÃªýÕÆÿÐºÙQ5B
+
+^{6ÿíÌ¥vVV%
+ÿà¬kA
+þ°ÿëàÿçØùsIL5ÿåÂè·;²{XÿéŒd/êgøÉ·õÂ°û£
++ÐtWÓr=v/ÿêÂÌ_.£
+ÄÆ
+Ä
++É
+œ84E2ÿáÁ÷­c}åÿãÒèq¢!
+ä]RÄ3*	ÿÿÿÿÿÿÿþÿÿÿÿüÿÿÿÿüÿÿÿÿüÿÿÿÿþÿÿÿøÿÿÿðÿÿÿàÿÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿþÀÿþÀÿþ@ÿÿ@
+ÿÿ`ÿ ÿ ÿ ÿÿþþüüøø
+ø<ø<þ|ÿÁþÆÿÿþÿÿþÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ@ÿÿÿ@ÿÿÿpÿÿÿÿà?ÿÿÿÿàÿÿÿÿáÿ
+'
+
+
+
+
+
+Õt0ò©nè­|ç¬yç¬yç¬zì±~åYB!
+Èh#ýÉÿÿïÿüÙÿüÚÿüÙÿÿéÿÜ«a/
+åOÿóÑÿë»ÿçŽÿç³ÿñÄÿåºI
+LÿÞ°ÿìÂÿâ®ÿã°ÿèžÿïÇše4
+n)ÿµzÿíÆÿÞ©ÿÞªÿà­ÿðÉÞT]!1$
+EÔHë£lýÍ¥ÿèÄÿÙ£ÿÙ£ÿØ¡ÿäºÿØ²ùœêªtÛX¹h5|<-a)	èMÿÒ¡ÿéÂÿé¿ÿß³ÿØ¥ÿÕÿÕÿÕÿÖ¡ÿÞ¯ÿåºÿèŸÿéÀÿå»ÿÏódR!3w4üškÿæ¿ÿß³ÿÒÿÐÿÐÿÐÿÑÿÑÿÑÿÑÿÐÿÐÿÐÿÑÿÕ ÿÞ²ÿæ¿ÿ×©ó^>
+Z$û¡cÿå¿ÿÕ¢ÿËÿÌÿÌÿÌÿÌÿÌÿÍÿÍÿÍÿÎÿÌÿÌÿÌÿËÿËÿÍÿÙªÿåœÿÁ¿_*'
+Ùu:ÿÙ®ÿÐÿÄÿÇÿÅÿÇÿÒ¡ÿ×¬ÿÒ¢ÿÆÿÇÿÆÿÏÿÖ¬ÿÖšÿÑÿÈÿÅÿÆÿÅÿÈÿÜ±ÿÐÕo5,j+
+ÿ²zÿÕ§ÿÀÿÂÿÁ
+ÿÇÿÖªÿÁþ§qýÍ¢ÿÇÿÁ
+ÿÀÿÊýË¢úšvÿÇÿ×©ÿÎÿÁ
+ÿÂÿÁ
+ÿÀÿÓ¥ÿÍÊg1«S&ÿÍÿÄÿŒÿœÿ¿
+ÿÓŠûf€GŠAÿ¶ÿÊÿ»ÿŒÿÁ
+ÿËÓf/BìOÿÅÿÐ¡ÿ¿ÿœÿŸÿ»~ÿÑ¡ÿÂšNÓs@ÿÏÿº|ÿ¹{ÿ·yÿÉÿ­x3g%	ø`ÿËÿ·zÿ¹{ÿ¹zÿÏàR 4Ùa)ÿ­zþÏÿ»}ÿž{ÿž{ÿ¹{ÿÐ ÿ£if&
++:ãKÿÅÿŽtÿ³uÿ¶wÿÇÚuBßt?ÿÅÿ·xÿ³uÿ³sÿÄþšrY!
++à^#ÿ©sÿÇÿ³tÿŽuÿ³tÿž|ÿÉ×o:	ŽEæ~HÿÀÿ¯mÿ®mÿ³tÿÁ­V,ÍZ'ÿ¶ÿ·zÿ®mÿ®nÿ·zÿ»?æ`'ÿ°{ÿœÿ­lÿ¯oÿ­kÿÀÿªrz0¹EæwAÿ»ÿ«iÿªiÿ®nÿŒœ`3¯Cÿfÿ¹}ÿªhÿ«jÿ®mÿŸ
+Âb4«@én7ÿºÿ±qÿªiÿ«iÿ¯nÿŸÍg5É]-ÿŽ{ÿšgÿ¥cÿŠdÿ¶{ç{G%
++
+.ðIÿ¶|ÿŠdÿŠeÿŠdÿ·|ìN-
+3ÿYÿ¶{ÿŠdÿŠeÿ¥cÿµzÿ\R€?ÿ¢gÿ©hÿ \ÿ[ÿ¬mÿ\e$
+Úa/ÿ­qÿ€bÿ¡^ÿ \ÿ¬kÿ^d$
+Õ\*ÿ¬pÿ¥cÿ ]ÿ]ÿ§fÿ©mA
+v'
+ù
+KÿšgÿVÿVÿ \ÿ¥fŠE°Bÿ_ÿ¢aÿWÿWÿ¡]ÿ£dA
+¢9üSÿ§fÿVÿXÿXÿªkØf5ác1ÿ¢aÿTÿRÿSÿ€bÝf4$	³;õGÿ¢`ÿRÿSÿTÿ¢aÑ^/Š7æg4ÿ¢aÿSÿSÿRÿ¢`øGEœE
+ÿQÿRÿMÿKÿUûDV	u"
+Ù_.ÿWÿIÿIÿHÿTõu<<ÚO!ýRÿPÿLÿLÿSÿMy+|'þ{=ÿJÿBÿAÿEÿF5ÁF
+ÿOÿRÿMÿMÿQÿCr$§6ù}@ÿKÿFÿHÿJÿL;-
+ã\'ÿNÿ[ÿeÿšrÿŠkÏS#Ž6þ
+Kÿœÿžÿµÿ¹ÿdŠ9]
++îh/ÿFÿ?ÿ<ÿ>ÿA¿J 
+©7ÿcÿ¿ÿŒÿ¿ÿŸøs:E*îh2ÿŒÿÀÿœÿÀÿŽÔQ!
+:
+ÞW&ÿ€jÿ€nÿZÿJÿ@ÑR#V	PUý}Dÿ¿ÿºÿ»ÿÂÿX&	ÙJ
+ÿ«yÿÃ¡ÿ»ÿŒÿŸôm5GÊEÿ£mÿŽÿ­ÿª}ÿ€lá[')(ãS"üg+-
+wìf.ÿŒÿ»ÿ»ÿÂ¡ÿšuŒ=®.
+ÿ\ÿÄ¢ÿœÿŒÿÁÿPy
+³8ÿbÿ²ÿ«}ÿª|ÿ©vé`+5
+dÿs:ÿ³ÿ[øq7ù]ÿŒÿ»ÿœÿÂ¡ÿµÓM
+ùq;ÿÃÿÁÿœÿÂ¡ÿ¡l¯3	µ4ÿ\ÿ³ÿ«~ÿ©{ÿ©uíb,:
+±-
+ÿXÿœÿ»ÿœÿœÿºÿŒÿŸÿÃ£ÿ»ØQ!:
++äPÿ¹ÿÄŠÿ¿ÿÃ¡ÿŽÛL
+ ²/ÿZÿŽÿªÿ©{ÿštïb+?
+ZäNÿ¬~ÿžÿµÿ¹ÿ¹ÿ»ÿœÿœÿÇªÿŽÓDº1
+ÿ¢rÿÉ«ÿÀ¡ÿÁ€ÿÀøi4L
++µ.ÿZÿŽÿ«ÿ©~ÿ©wïa,>
++³$
++õ`&ÿ±ÿÃ¡ÿÅ¥ÿÅ¥ÿÄŠÿÆ©ÿÈ¬ÿÎŽÿÒ³ÿP¬%ÿJÿÊ¬ÿÃ€ÿÂ€ÿÆ§ÿPÁ0
+ÿšuÿÏ°ÿÅ£ÿÃ¡ÿÃðd0@º(Ø1åKõ{GüŠyÿ¿ÿÊ¬ÿÍ°ÿÎ°þŸúOÝ7ZïZ'ÿÅ£ÿÅªÿÂ€ÿÉ­ÿ¡ož,
++è9ÿr8ÿ}IÿzFÿzEÿ{BôN
+G
+Ê#Ï#×.	à@åO"çS&äN!ß:Ð%
+
+
++Ô7
+ÿ³ÿÌ²ÿÃšÿÈ­ÿžàD(f	wqrsvs	!Ë
+Ê
+É
+	Ë
+Î
+Ž
+ÿaÿÒ»ÿÆ«ÿÆ¬ÿÇ§øb-Y	÷i9ÿÓ¹ÿËŽÿÆ®ÿÍ·ÿ
+S$	
++	!
+!
+#$
++eåBÿÄ§ÿÑÀÿÉ²ÿÎºÿŠ}¿$y*
+ëIáMT!
++>	ßYíšok8ØRë¯rX)Ç ÿšÿØÊÿË·ÿÌ¹ÿ¿£å>7x"ÿÀû©g6
++r0ÿà¯ÿä²h3%
+úœÿîŒ¡b,
+þ^ÿÜÌþÎŸþËžÿÎºûd<e7ÃI[!
+!ÖxDÿÿêñŽ9f/ÿÌÿÕw?xï\9ÿØÅûÓÅûÍŒýÔÂÿj:ÃV$ÿãÂÿðÐº\)¹e3ÿðÐÿ¹~M_Ý< þÒ¿ýßÔüÕÈüÚÌÿŒ¢Ï)"]øcÿóÚÿóÛä{C%PüµÿûâÐ~D!gÅ'
+ÿÏ·ÿïãþãÖýäÖÿäÐîa@jmÿœÿÒŽÕ].1#Ûp5ÿùßÿÇ2
++žßO4ÛZBÛV>ÛV>ÛZ@Ý@š
+B
++©.u-ÏX'ÿæÆÿæÆÅX"*
+³
+ÃŒœœœÄ²sævPÿòÚÿçÒðj5^
+åfRÿË¶ÿÿøýÍ¶ßS+
+ü¹­þØÎæu^¿%
+
++Ó$Õ
+
+\ No newline at end of file
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/os2/psi_os2.rc trunk/os2/psi_os2.rc
+--- vendor/current/os2/psi_os2.rc	1970-01-01 01:00:00.000000000 +0100
++++ trunk/os2/psi_os2.rc	2012-10-18 21:26:14.000000000 +0200
+@@ -0,0 +1 @@
++ICON 1 DISCARDABLE "../os2/app.ico"
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/os2/Readme.OS2 trunk/os2/Readme.OS2
+--- vendor/current/os2/Readme.OS2	1970-01-01 01:00:00.000000000 +0100
++++ trunk/os2/Readme.OS2	2013-12-06 15:50:44.000000000 +0100
+@@ -0,0 +1,225 @@
++Psi 0.16-dev for OS/2 and eComStation
++-------------------------------------
++  This file contains information specific to the OS/2 - eComStation version of 
++  Psi. Before reading it, please refer to the README file that contains
++  general information about Psi.
++
++
++0. CONTENTS OF THIS FILE
++========================
++  1. INTRODUCTION
++  2. REQUIREMENTS
++  3. INSTALLATION
++  4. CONFIGURATION DATA
++  5. KNOWN PROBLEMS
++  6. BUGREPORTS
++  7. CREDITS
++  8. SUPPORT AND DONATIONS
++  9. HISTORY
++
++
++1. INTRODUCTION
++===============
++  Welcome to Psi version 0.16-dev for OS/2 and eComStation.
++
++
++2. REQUIREMENTS
++===============
++  The following requirements can be installed either by rpm or by zip files  
++  except Extended System Tray widget which is currently available as zip only.
++  
++
++  RPM Installation (preferred):
++  ============================
++  klibc
++  -----
++    1. yum install libc
++  
++  GCC4Core
++  --------
++    1. yum install libgcc
++    2. yum install gcc-stack-protector
++    3. yum install gcc-stdc++-shared-library
++    4. yum install gcc-supc++-shared-library
++  
++  Qt4 dll
++  -------
++    1. yum install libqt4
++    
++  Zlib  
++  ----
++    1. yum install zlib
++  
++  openssl 1.0
++  -----------
++    1. yum install openssl
++
++  pthread
++  -------
++    1. yum install pthread
++
++
++  ZIP Installation:
++  =================
++  klibc    
++  -----
++    1. Download klibc 0.6.5 or better (see http://svn.netlabs.org/libc for 
++        more information)
++    2. Install the files to your libpath eg x:\ecs\dll
++  
++  GCC4Core   
++  --------
++    1. Download GCC4Core 1.2.1 or better from ftp://ftp.netlabs.org/pub/gcc
++    2. Install the files to your libpath eg. x:\ecs\dll
++  
++  Qtcore4   
++  -------
++    1. Download Qt4 4.7.3 or better (see http://svn.netlabs.org/qt4 for more 
++      information). 'Qt Runtime Libraries and Plugins' is sufficient.
++    2. Install the files according to the readme
++  
++  Zlib   
++  ----
++    1. Download zlib from f.i. http://rpm.netlabs.org/release/00/zip/
++    2. Unpack and install z.dll to your libpath eg. x:\ecs\dll
++
++  openssl 1.0
++  -----------
++    1. Download openssl from f.i. http://rpm.netlabs.org/release/00/zip
++    2. Unpack and install the dll to your libpath eg. x:\ecs\dll
++
++  pthread
++  -------
++    1. Download pthread from f.i. http://rpm.netlabs.org/release/00/zip
++    2. Unpack and install the dll to your libpath eg. x:\ecs\dll
++
++  Extended System Tray
++  --------------------
++    1. ExtendedSysTray widget for xCenter/eCenter. Not strictly required 
++       but strongly recommended. Get it from here if you do not have it 
++       installed already - ftp://ftp.netlabs.org/pub/qt4/xsystray/
++
++        
++3. INSTALLATION
++===============
++  1.  Unzip the Psi archive containing this file to a directory of your
++      choice and run the Psi executable (psi.exe).
++      
++  2.  Additionally, you can download a Language Pack for your language using
++      the following link: http://psi-im.org/download. Copy the language file 
++      (f.i. psi_de.qm) into the directory of psi.exe. You need to restart Psi to 
++      load the language file.
++  
++  3.  If you want to use the 'PM Default Browser/Mail' setting to open links
++      within chat windows, make sure that you have the default PM browser and
++      mail client applications set up correctly.  The easiest way to do this is
++      to use the 'Configure Internet Applications' tool from Hobbes
++      (http://hobbes.nmsu.edu/pub/os2/apps/misc/configapps1_1_1.zip).
++  
++  Please refer to the 'Known Problems' section below for additional information
++  on how to resolve problems you may encounter when running Psi for OS/2.
++
++  Upgrading a previous version
++  ----------------------------
++  If you are upgrading from a previous version of Psi, please always use a clean 
++  directory to install the new version to avoid possible file conflicts. Psi 0.16-dev 
++  uses a new profile data format. Starting Psi 0.16-dev the first time will migrate 
++  your current Psi settings. If you ever want to import the settings of the 
++  older version afterwards again delete the Psi 0.16-dev configuration data trees and 
++  start Psi again. See section 'Configuration Data' for details.
++  
++  Please note that installing a new version to a clean directory will not affect
++  your existing personal configuration data (Psi profiles, account settings, 
++  message history) because it is stored in a separate directory and therefore
++  will be preserved. 
++  
++
++4. CONFIGURATION DATA
++=====================
++  Psi 0.16-dev stores all configuration files (such as Psi profiles, account settings,
++  message history, etc.) in subdirectories of your home directory (pointed to by 
++  the HOME environment variable). Path to home directory is usually set in your 
++  config.sys (SET HOME=xxxxx). You can check your current home setting by entering 
++  'echo %home%' in a command line window. Note that if the HOME variable is 
++  invalid or points to a non-existing location, the .config, .local and .cache 
++  subdirectories will be created in the root directory of the boot drive!
++  
++  Standard eCS installation sets home to x:\home\default. Psi 0.16-dev configuration 
++  is stored in following directories then - 
++  x:\home\default\.local\share\psi
++  x:\home\default\.config\psi
++  x:\home\default\.cache\psi
++  
++  The paths and parameters to the default PM browser and mail client applications
++  are taken from the HINI_USER_PROFILE\WPURLDEFAULTSETTINGS registry key (stored
++  in the X:\OS2\OS2.INI file).
++
++ 
++5. KNOWN PROBLEMS
++=================
++  1. If you have a single-streamed sound card (a card that cannot play
++    more than one sound at a time) and experience problems with sound
++    in Psi (such as 100% CPU load when playing too many sounds
++    simultaneously), try to add the following line to CONFIG.SYS
++    (or to the .CMD script that starts Psi):
++
++        SET QT_PM_NO_SOUND_SHARE=YES
++
++    This will tell the Qt library to open sound devices in the
++    exclusive mode.
++
++  2. The exit button of the Psi window does not close Psi completely but 
++    minimizes Psi as this is the usual behaviour on other platforms. 
++    Unfortunately Psi is not shown in the Window List. To completely close Psi 
++    right button click (RBC) on the Psi symbol in the Extendeded System Tray 
++    xcenter widget. If you have not installed ExtendedSysTray or in case RBC do 
++    not work (f.i. your profile data is not complete) use TOP or KILL or another 
++    process kill utility to exit psi.exe.
++      
++
++6. BUGREPORTS
++=============
++  Please create bugreports at http://svn.netlabs.org/qtapps
++  Only bug reports with a reproducable bug are accepted. 
++  
++
++7. CREDITS
++==========
++  The port was done by Silvan Scherrer aka _diver
++  Thanks go to Dmitriy Kuminov for all his coding work for eCS
++  Special thanks of course go to the Psi developers - see 
++  http://psi-im.org/about/
++
++
++8. SUPPORT AND DONATIONS
++========================
++  Psi port is based on volunteer work. If you would like to support further
++  development, you can do so in one of the following ways:          
++    * Donate to the Qt4 project: see qt.netlabs.org for more information
++    * Contribute to the project: Besides actual development, this also includes
++      maintaining the documentation and the project web site as well as help for 
++      users.
++
++
++9. HISTORY
++==========
++
++  2013-12-06
++    * updated to latest 0.16-dev sources
++
++  2013-08-23
++    * updated to latest 0.16-dev sources
++
++  2013-02-22
++    * repacked with iconsets
++
++  2012-10-26
++    * first official Psi 0.15 port
++  
++  2006-09-26
++    * official Psi 0.10.1 port
++    
++  For general Psi history see README 
++  
++
++2012-10-29 Andreas Buchinger
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/psi.pro trunk/psi.pro
+--- vendor/current/psi.pro	2013-08-22 16:52:32.000000000 +0200
++++ trunk/psi.pro	2013-08-22 18:15:36.000000000 +0200
+@@ -5,6 +5,7 @@
+ # configure iris
+ unix:system("echo \"include(../src/conf_iris.pri)\" > iris/conf.pri")
+ windows:system("echo include(../src/conf_iris.pri) > iris\\conf.pri")
++os2:system("echo include(../src/conf_iris.pri) > iris/conf.pri")
+ 
+ sub_iris.subdir = iris
+ sub_src.subdir = src
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/aboutdlg.cpp trunk/src/aboutdlg.cpp
+--- vendor/current/src/aboutdlg.cpp	2012-10-04 02:53:02.000000000 +0200
++++ trunk/src/aboutdlg.cpp	2013-12-05 14:28:04.000000000 +0100
+@@ -24,6 +24,7 @@
+ 
+ #include "applicationinfo.h"
+ #include "aboutdlg.h"
++#include "systeminfo.h"
+ 
+ AboutDlg::AboutDlg(QWidget* parent)
+ 	: QDialog(parent)
+@@ -33,7 +34,7 @@
+ 
+ 	setModal(false);
+ 
+-	ui_.lb_name->setText ( QString("<h3><b>%1 v%2</b></h3>").arg(ApplicationInfo::name()).arg(ApplicationInfo::version()) );
++	ui_.lb_name->setText ( QString("<h3><b>%1 v%2 on %3</b></h3>").arg(ApplicationInfo::name()).arg(ApplicationInfo::version()).arg(SystemInfo::instance()->os()) );
+ 
+ 	ui_.te_license->setText ( loadText(":/COPYING") );
+ 
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/applicationinfo.cpp trunk/src/applicationinfo.cpp
+--- vendor/current/src/applicationinfo.cpp	2013-12-03 18:34:22.000000000 +0100
++++ trunk/src/applicationinfo.cpp	2013-12-05 14:03:02.000000000 +0100
+@@ -143,7 +143,7 @@
+ {
+ #if defined(HAVE_X11)
+ 	return PSI_DATADIR;
+-#elif defined(Q_OS_WIN)
++#elif defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 	return qApp->applicationDirPath();
+ #elif defined(Q_OS_MAC)
+ 	// FIXME: Clean this up (remko)
+@@ -238,7 +238,7 @@
+ 			QDir configDir(QDir::homePath() + "/Library/Application Support/" + name());
+ 			QDir cacheDir(QDir::homePath() + "/Library/Caches/" + name());
+ 			QDir dataDir(configDir);
+-#elif defined HAVE_X11
++#elif defined HAVE_X11 || defined(Q_OS_OS2)
+ 			QString XdgConfigHome = QString::fromLocal8Bit(getenv("XDG_CONFIG_HOME"));
+ 			QString XdgDataHome = QString::fromLocal8Bit(getenv("XDG_DATA_HOME"));
+ 			QString XdgCacheHome = QString::fromLocal8Bit(getenv("XDG_CACHE_HOME"));
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/common.cpp trunk/src/common.cpp
+--- vendor/current/src/common.cpp	2013-12-03 18:34:22.000000000 +0100
++++ trunk/src/common.cpp	2013-12-05 13:34:34.000000000 +0100
+@@ -283,7 +283,7 @@
+ 		return;
+ 	}
+ 
+-#if defined(Q_OS_WIN) || defined(Q_OS_MAC)
++#if defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(Q_OS_OS2)
+ 	QSound::play(str);
+ #else
+ 	QString player = PsiOptions::instance()->getOption("options.ui.notifications.sounds.unix-sound-player").toString();
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/config.h trunk/src/config.h
+--- vendor/current/src/config.h	1970-01-01 01:00:00.000000000 +0100
++++ trunk/src/config.h	2013-12-06 16:46:00.000000000 +0100
+@@ -0,0 +1,3 @@
++#define PSI_LIBDIR "/usr/local/lib/psi"
++#define PSI_DATADIR "/usr/local/share/psi"
++#define PSI_VERSION "0.16-dev-20131206"
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/homedirmigration.cpp trunk/src/homedirmigration.cpp
+--- vendor/current/src/homedirmigration.cpp	2013-08-22 16:52:32.000000000 +0200
++++ trunk/src/homedirmigration.cpp	2013-08-23 10:14:42.000000000 +0200
+@@ -165,7 +165,7 @@
+ 
+ 				QString dstDirName;
+ 				QRegExp settingsXp("^/psirc$|^/profiles/\\w*/accounts.xml$|^/profiles/\\w*/accounts.xml.backup$|"
+-								   "^/profiles/\\w*/options.xml$|^/profiles/\\w*/options.xml.backup$|^/profiles/\\w*/mucskipautojoin.txt$");
++								   "^/profiles/\\w*/options.xml$|^/profiles/\\w*/options.xml.backup$|^/profiles/\\w*/config.xml$|^/profiles/\\w*/mucskipautojoin.txt$");
+ 
+ 				QRegExp cacheXp("^/tmp-contentdownloader/.*$|^/tmp-sounds/.*$|^/tmp-pics/.*$|"
+ 								"^/bob/.*|^/avatars/.*$|^/profiles/\\w*/vcard/.*$|^/caps.xml$|^/tune$");
+@@ -256,6 +256,9 @@
+ 	base = QDir::cleanPath(base);
+ 
+ 	oldHomeDir_.setPath(base + "/PsiData");
++#elif defined Q_OS_OS2
++	QString base = QDir::homePath();
++	oldHomeDir_.setPath(base + "/PsiData");
+ #endif
+ 	return oldHomeDir_.exists();
+ }
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/libpsi/tools/globalshortcut/globalshortcut.pri trunk/src/libpsi/tools/globalshortcut/globalshortcut.pri
+--- vendor/current/src/libpsi/tools/globalshortcut/globalshortcut.pri	2013-12-03 19:04:12.000000000 +0100
++++ trunk/src/libpsi/tools/globalshortcut/globalshortcut.pri	2013-12-05 14:05:14.000000000 +0100
+@@ -16,3 +16,6 @@
+ 	HEADERS += \
+ 		$$PWD/NDKeyboardLayout.h
+ }
++os2: {
++	SOURCES += $$PWD/globalshortcutmanager_pm.cpp
++}
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/libpsi/tools/globalshortcut/globalshortcutmanager_pm.cpp trunk/src/libpsi/tools/globalshortcut/globalshortcutmanager_pm.cpp
+--- vendor/current/src/libpsi/tools/globalshortcut/globalshortcutmanager_pm.cpp	1970-01-01 01:00:00.000000000 +0100
++++ trunk/src/libpsi/tools/globalshortcut/globalshortcutmanager_pm.cpp	2012-10-18 15:08:06.000000000 +0200
+@@ -0,0 +1,63 @@
++/*
++ * globalshortcutmanager_pm.cpp - PM implementation of global shortcuts
++ * Copyright (C) 2003-2006  Justin Karneges, Maciej Niedzielski
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++/****** @todo this is heavily needed so do it once */
++
++#include "globalshortcutmanager.h"
++#include "globalshortcuttrigger.h"
++
++#include <QWidget>
++
++class GlobalShortcutManager::KeyTrigger::Impl : public QWidget
++{
++public:
++	/**
++	 * Constructor registers the hotkey.
++	 */
++	Impl(GlobalShortcutManager::KeyTrigger* t, const QKeySequence& ks)
++	{
++	}
++
++	/**
++	 * Destructor unregisters the hotkey.
++	 */
++	~Impl()
++	{
++	}
++
++	/**
++	 * Triggers triggered() signal when the hotkey is activated.
++	 */
++
++private:
++
++};
++
++
++GlobalShortcutManager::KeyTrigger::KeyTrigger(const QKeySequence& key)
++{
++	d = new Impl(this, key);
++}
++
++GlobalShortcutManager::KeyTrigger::~KeyTrigger()
++{
++	delete d;
++	d = 0;
++}
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/libpsi/tools/idle/idle.pri trunk/src/libpsi/tools/idle/idle.pri
+--- vendor/current/src/libpsi/tools/idle/idle.pri	2012-10-04 02:53:12.000000000 +0200
++++ trunk/src/libpsi/tools/idle/idle.pri	2012-10-18 14:31:18.000000000 +0200
+@@ -11,3 +11,6 @@
+ mac: {
+ 	SOURCES += $$PWD/idle_mac.cpp
+ }
++os2 {
++	SOURCES += $$PWD/idle_x11.cpp
++}
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/libpsi/tools/simplecli/simplecli.cpp trunk/src/libpsi/tools/simplecli/simplecli.cpp
+--- vendor/current/src/libpsi/tools/simplecli/simplecli.cpp	2013-08-22 16:54:16.000000000 +0200
++++ trunk/src/libpsi/tools/simplecli/simplecli.cpp	2013-12-05 14:24:28.000000000 +0100
+@@ -84,7 +84,7 @@
+   */
+ QHash<QByteArray, QByteArray> SimpleCli::parse(int argc, char* argv[], const QList<QByteArray>& terminalArgs, int* safeArgc)
+ {
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 	const bool winmode = true;
+ #else
+ 	const bool winmode = false;
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/libpsi/tools/spellchecker/aspellchecker.cpp trunk/src/libpsi/tools/spellchecker/aspellchecker.cpp
+--- vendor/current/src/libpsi/tools/spellchecker/aspellchecker.cpp	2013-08-22 16:54:16.000000000 +0200
++++ trunk/src/libpsi/tools/spellchecker/aspellchecker.cpp	2013-12-05 14:25:08.000000000 +0100
+@@ -38,7 +38,7 @@
+ 	speller_ = NULL;
+ 	config_ = new_aspell_config();
+ 	aspell_config_replace(config_, "encoding", "utf-8");
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 	aspell_config_replace(config_, "conf-dir", QDir::homePath().toLocal8Bit().data());
+ 	aspell_config_replace(config_, "data-dir", QString("%1/aspell").arg(QCoreApplication::applicationDirPath()).toLocal8Bit().data());
+ 	aspell_config_replace(config_, "dict-dir", QString("%1/aspell").arg(QCoreApplication::applicationDirPath()).toLocal8Bit().data());
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/libpsi/tools/systemwatch/systemwatch.pri trunk/src/libpsi/tools/systemwatch/systemwatch.pri
+--- vendor/current/src/libpsi/tools/systemwatch/systemwatch.pri	2012-10-04 02:53:12.000000000 +0200
++++ trunk/src/libpsi/tools/systemwatch/systemwatch.pri	2013-08-23 10:33:04.000000000 +0200
+@@ -14,3 +14,7 @@
+ 	HEADERS += $$PWD/systemwatch_mac.h
+ 	SOURCES += $$PWD/systemwatch_mac.cpp
+ }
++os2 {
++	HEADERS += $$PWD/systemwatch_unix.h
++	SOURCES += $$PWD/systemwatch_unix.cpp
++}
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/main.cpp trunk/src/main.cpp
+--- vendor/current/src/main.cpp	2013-08-22 16:52:32.000000000 +0200
++++ trunk/src/main.cpp	2013-08-23 10:46:06.000000000 +0200
+@@ -484,7 +484,7 @@
+ 	QByteArray val = qgetenv("QT_PLUGIN_PATH");
+ 	if(!val.isEmpty())
+ 	{
+-#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
++#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_OS_OS2)
+ 		QLatin1Char pathSep(';');
+ #else
+ 		QLatin1Char pathSep(':');
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/options/opt_sound.cpp trunk/src/options/opt_sound.cpp
+--- vendor/current/src/options/opt_sound.cpp	2013-08-22 16:52:32.000000000 +0200
++++ trunk/src/options/opt_sound.cpp	2013-08-23 11:01:08.000000000 +0200
+@@ -170,6 +170,8 @@
+ 	d->le_player->setText(tr("Windows Sound"));
+ #elif defined(Q_OS_MAC)
+ 	d->le_player->setText(tr("Mac OS Sound"));
++#elif defined(Q_OS_OS2)
++	d->le_player->setText(tr("eComStation(OS/2) Sound"));
+ #else
+ 	d->le_player->setText( PsiOptions::instance()->getOption("options.ui.notifications.sounds.unix-sound-player").toString() );
+ #endif
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/src.pri trunk/src/src.pri
+--- vendor/current/src/src.pri	2013-12-03 18:34:22.000000000 +0100
++++ trunk/src/src.pri	2013-12-05 14:09:30.000000000 +0100
+@@ -602,6 +602,10 @@
+ 	SOURCES += $$PWD/activeprofiles_stub.cpp
+ }
+ 
++os2 {
++	SOURCES += $$PWD/activeprofiles_stub.cpp
++}
++
+ webkit {
+ 	HEADERS += 	$$PWD/chatview_webkit.h \
+ 			$$PWD/networkaccessmanager.h \
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/src.pro trunk/src/src.pro
+--- vendor/current/src/src.pro	2013-08-22 16:52:34.000000000 +0200
++++ trunk/src/src.pro	2013-08-23 11:41:48.000000000 +0200
+@@ -151,6 +151,9 @@
+ 	# buggy MSVC workaround
+ 	win32-msvc|win32-msvc.net|win32-msvc2005: QMAKE_LFLAGS += /FORCE:MULTIPLE
+ }
++os2 {
++	RC_FILE = ../os2/psi_os2.rc
++}
+ mac {
+ 	# Universal binaries
+ 	qc_universal:contains(QT_CONFIG,x86):contains(QT_CONFIG,x86_64) {
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/systeminfo.cpp trunk/src/systeminfo.cpp
+--- vendor/current/src/systeminfo.cpp	2013-12-03 18:34:22.000000000 +0100
++++ trunk/src/systeminfo.cpp	2013-12-06 14:53:42.000000000 +0100
+@@ -171,14 +171,14 @@
+ 	os_str_ = "Unknown";
+ 
+ 	// Detect
+-#if defined(HAVE_X11) || defined(Q_OS_MAC)
++#if defined(HAVE_X11) || defined(Q_OS_MAC) || defined(Q_OS_OS2)
+ 	time_t x;
+ 	time(&x);
+-	char str[256];
++	char str[256] = "\0";
+ 	char fmt[32];
+ 	strcpy(fmt, "%z");
+ 	strftime(str, 256, fmt, localtime(&x));
+-	if(strcmp(fmt, str)) {
++	if(*str && strcmp(fmt, str)) {
+ 		QString s = str;
+ 		if(s.at(0) == '+')
+ 			s.remove(0,1);
+@@ -187,7 +187,7 @@
+ 	}
+ 	strcpy(fmt, "%Z");
+ 	strftime(str, 256, fmt, localtime(&x));
+-	if(strcmp(fmt, str))
++	if(*str && strcmp(fmt, str))
+ 		timezone_str_ = str;
+ #endif
+ #if defined(HAVE_X11)
+@@ -225,6 +225,57 @@
+ 		default:
+ 			os_str_ = "Mac OS X";
+ 	}
++#elif defined(Q_OS_OS2)
++	QSysInfo::Os2Version v = QSysInfo::os2Version();
++	switch(v) {
++		case QSysInfo::OV_Unknown:
++			os_str_ = "Unknown";
++			break;
++		case QSysInfo::OV_2_0:
++			os_str_ = "OS/2 2.0";
++			break;
++		case QSysInfo::OV_2_1:
++			os_str_ = "OS/2 2.1";
++			break;
++		case QSysInfo::OV_2_11:
++			os_str_ = "OS/2 2.11";
++			break;
++		case QSysInfo::OV_3_0:
++			os_str_ = "OS/2 Warp 3";
++			break;
++		case QSysInfo::OV_4_0:
++			os_str_ = "OS/2 Warp 4";
++			break;
++		case QSysInfo::OV_4_5:
++			os_str_ = "OS/2 Warp 4.5";
++			break;
++		case QSysInfo::OV_4_52:
++			os_str_ = "OS/2 Warp 4.52";
++			break;
++		case QSysInfo::OV_ECS_Unknown:
++			os_str_ = "eComStation";
++			break;
++		case QSysInfo::OV_ECS_1_0:
++			os_str_ = "eComStation 1.0";
++			break;
++		case QSysInfo::OV_ECS_1_1:
++			os_str_ = "eComStation 1.1";
++			break;
++		case QSysInfo::OV_ECS_1_2:
++			os_str_ = "eComStation 1.2";
++			break;
++		case QSysInfo::OV_ECS_2_0:
++			os_str_ = "eComStation 2.0";
++			break;
++		case QSysInfo::OV_ECS_2_1:
++			os_str_ = "eComStation 2.1";
++			break;
++		case QSysInfo::OV_ECS_2_2:
++			os_str_ = "eComStation 2.2";
++			break;
++		default:
++			os_str_ = "eComstation";
++	}
+ #endif
+ 
+ #if defined(Q_OS_WIN)
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/textutil.cpp trunk/src/textutil.cpp
+--- vendor/current/src/textutil.cpp	2013-12-03 18:34:22.000000000 +0100
++++ trunk/src/textutil.cpp	2013-12-05 14:18:58.000000000 +0100
+@@ -87,7 +87,7 @@
+ 	int col = 0;
+ 
+ 	for(int i = 0; i < (int)plain.length(); ++i) {
+-#ifdef Q_OS_WIN
++#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
+ 		if(plain[i] == '\r' && i+1 < (int)plain.length() && plain[i+1] == '\n')
+ 			++i;	// Qt/Win sees \r\n as two new line chars
+ #endif
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/webview.cpp trunk/src/webview.cpp
+--- vendor/current/src/webview.cpp	2013-12-03 18:34:22.000000000 +0100
++++ trunk/src/webview.cpp	2013-12-06 17:20:26.000000000 +0100
+@@ -166,6 +166,22 @@
+ 	page()->mainFrame()->evaluateJavaScript(scriptSource);
+ }
+ 
++#ifdef Q_OS_OS2
++QString WebView::selectedHtml()
++{
++	// WARNING: this hack needs to be removed when we have Qt 4.8
++	QClipboard *clipboard = QApplication::clipboard();
++	QMimeData *originalData = new QMimeData;
++	foreach (QString format, clipboard->mimeData(QClipboard::Clipboard)->formats()) {
++		originalData->setData(format, clipboard->mimeData(QClipboard::Clipboard)->data(format));
++	}
++	copySelected();
++	QString html = clipboard->mimeData()->html();
++	clipboard->setMimeData(originalData);
++	return html;
++}
++#endif
++
+ QString WebView::selectedText()
+ {
+ 	return TextUtil::rich2plain(TextUtil::img2title(selectedHtml()));
+diff -Naur -x Makefile -x '*.dll' -x 'conf*.pri' -x '*.zip' -x '*.exe' -x '*.map' -x '*.obj' -x '*.moc' -x '*.rcc' -x iris.prl -x irisnet.prl -x '*.sym' -x .ui -x '*.bak' -x '*.lib' -x '*.rsp' -x 'moc_*.cpp' -x Info.plist -x conf.log vendor/current/src/webview.h trunk/src/webview.h
+--- vendor/current/src/webview.h	2013-12-03 18:34:22.000000000 +0100
++++ trunk/src/webview.h	2013-12-06 17:12:04.000000000 +0100
+@@ -78,6 +78,9 @@
+ 	/** Evaluates JavaScript code */
+ 	void evaluateJS(const QString &scriptSource = "");
+ 
++#ifdef Q_OS_OS2
++	QString selectedHtml();
++#endif
+ 	QString selectedText();
+ 	bool isLoading() { return isLoading_; }
+ 
Index: /diffs/qpdfview_0.4.7_GA.diff
===================================================================
--- /diffs/qpdfview_0.4.7_GA.diff	(revision 152)
+++ /diffs/qpdfview_0.4.7_GA.diff	(revision 152)
@@ -0,0 +1,769 @@
+diff -Naur -x qpdfview.desktop E:\trees\qpdfview\trunk\..\vendor\current/build_os2.cmd E:\trees\qpdfview\trunk/build_os2.cmd
+--- E:\trees\qpdfview\trunk\..\vendor\current/build_os2.cmd	1970-01-01 01:00:00.000000000 +0100
++++ E:\trees\qpdfview\trunk/build_os2.cmd	2013-12-03 14:46:24.000000000 +0100
+@@ -0,0 +1,359 @@
++/* qpdfview Build Script */
++/* version history */
++/* version 0.1.0 from 25.03.2013 Silvan (first edition) */
++/* version 0.1.1 from 25.04.2013 Silvan (new poppler lib) */
++/* version 0.1.2 from 29.05.2013 Silvan (application version from qpdfview.pri) */
++/* version 0.1.3 from 17.06.2013 Silvan (added .ps support) */
++/* version 0.1.4 from 08.08.2013 Silvan (new poppler lib) */
++/* version 0.1.5 from 20.08.2013 Silvan (added diff option) */
++/* version 0.1.6 from 15.10.2013 Silvan (copy all help*.html) */
++/* version 0.2.0 from 16.10.2013 Silvan (get some info form qpdfview_os2.pri) */
++/* version 0.2.1 from 03.12.2013 Silvan (help files now in help dir) */
++
++/* init the version string (don't forget to change) */
++version = "0.2.1"
++version_date = "03.12.2013"
++'@echo off'
++
++parse arg command option
++parse source . . scriptFile
++
++/* init the required vars */
++qRC = 0
++mRC = 0
++buildDir    = strip(directory(),'T','\') /* Make sure we have no trailing backslash */
++sourceDir = FixDir(filespec('D', scriptFile) || filespec('P', scriptFile))
++vendorDir  = sourceDir || '\..\vendor\current'
++diffDir    = sourceDir || '\..\'
++srcDir     = sourceDir
++OS2Dir     = sourceDir
++installDir = buildDir || '\install'
++installDirT= installDir || '\data'
++qErrorFile = buildDir||'\qmake.err'
++qOutFile   = buildDir||'\qmake.out'
++mErrorFile = buildDir||'\make.err'
++mOutFile   = buildDir||'\make.out'
++
++/* get the Qpdfview version */
++Qpdfview_version = '0.0.0'
++Qpdfview_build = ' '
++call version
++internal_build = translate(Qpdfview_version, '_', '.')
++
++/* get some info from qpdfview_os2.pri */
++popplerDir = ' '
++psDir = ' '
++djvuDir = ' '
++tiffDir = ' '
++call getpri
++
++title = "Qpdfview for eCS (OS/2) build script v" || version || " from " || version_date
++say title
++say
++say "Build directory   :" buildDir
++say "Source directory  :" sourceDir
++say
++say "Qpdfview version  :" Qpdfview_version
++say "         build    :" Qpdfview_build 
++say
++say "Using poppler from:" popplerDir
++say "      djvu from   :" djvuDir
++say "      ps from     :" psDir
++say "      tiff from   :" tiffDir
++say
++
++/* translate command to all upercase */
++command = translate(command)
++
++if command = "" then signal help
++
++
++if command = "INSTALL" then do
++    if option \== "" then do
++	Qpdfview_build = option
++    end
++    select
++	when Qpdfview_build \== "" then do
++	  zipFile = installDir || '\qpdfview-' || internal_build || '-' || Qpdfview_build || '.zip'
++	end
++	otherwise do
++	  signal help
++	end
++    end 
++end
++
++/* now we translate also the option */
++option = translate(option)
++
++if sourceDir \== buildDir then do
++    say "Shadow build in progress ..."
++    say
++end
++
++say "Executing command: "command option
++
++select
++    when command = "MAKE" & option = "CLEAN" then do
++
++        say "cleaning the tree"
++        call make 'distclean'
++
++        say "please execute this script again with 'make' to build Qpdfview"
++
++    end
++    when command = "MAKE" then do
++
++        say "creating Qpdfview makefile"
++        call qmake
++
++        if qRC = 0 then do
++            say "building Qpdfview"
++	    if option = "" then do
++            	call make
++	    end
++	    else do
++		call make 'debug'
++	    end
++        end
++
++    end
++
++    when command = "INSTALL" then do
++
++/* first delete everything */
++	call deleteall
++
++/* create the installDir,and the translation subdir */
++	ok = SysMkDir(installDir)
++	ok = SysMkDir(installDirT)
++
++/* copy the exe */
++	ok = SysCopyObject(buildDir||'\Qpdfview.exe',installDir)
++
++/* copy all dll */
++        ok = SysFileTree(buildDir||'\*.dll', rm.,'FOS')
++        do i = 1 to rm.0
++          ok = SysCopyObject(rm.i, installDir)
++        end
++
++/* copy the readme */
++	rm.0 = 1
++	rm.1 = 'install.os2'
++	do i = 1 to rm.0
++	cmdtorun = 'sed "s;_VERSION_;' || Qpdfview_version || ';g" ' || os2Dir || '\' || rm.i || ' | sed "s;_BUILD_;' || Qpdfview_build || ';g" >' || installDir || '\' || rm.i
++        address cmd cmdtorun
++	end
++
++/* copy different stuff */
++	rm.0 = 5
++	rm.1 = 'CHANGES'
++	frmDir.1 = os2Dir
++	toDir.1 = installDir
++	rm.2 = 'help*.html'
++	frmDir.2 = os2Dir || '\help'
++	toDir.2 = installDirT
++	rm.3 = '*.dll'
++	frmDir.3 = popplerDir || '\poppler\.libs'
++	toDir.3 = installDir
++	rm.4 = '*.dll'
++	frmDir.4 = popplerDir || '\qt4\src\.libs'
++	toDir.4 = installDir
++	rm.5 = '*.dll'
++	frmDir.5 = tiffDir || '\libtiff\.libs'
++	toDir.5 = installDir
++	do i = 1 to rm.0
++	cmdtorun = 'copy ' || frmDir.i || '\' || rm.i || ' ' || toDir.i
++        address cmd cmdtorun
++	end
++
++/* create the qm files from ts files */
++	ok = SysFileTree(srcDir||'\translations\*.ts', rm.,'FO')
++        do i = 1 to rm.0
++	    fileName = filespec('N',rm.i)
++	    fileName = left(fileName,lastpos('.', fileName)-1) || '.qm'
++            cmdtorun = 'lrelease ' || rm.i || ' -qm ' || installDirT || '\' || fileName
++	    address cmd cmdtorun
++        end
++
++/* zip all dynamic stuff */
++	ok = directory(installDir)
++	cmdtorun = 'zip -r ' || zipFile || ' * -x *.zip'
++	address cmd cmdtorun
++        ok = directory(buildDir)
++
++/* zip all icons */
++
++    end
++
++    when command = "UNINSTALL" then do
++
++	call deleteall
++	
++    end
++
++    when command = "DIFF" then do
++
++	address cmd 'diff -Naur ' || vendorDir || ' ' || sourceDir || ' -x qpdfview.desktop >' || diffDir || 'qpdfview_' || Qpdfview_version || '_' || Qpdfview_build || '.diff'
++	
++    end
++
++    otherwise do
++        say 'Unknown parameter "'command'" - aborting...'
++        exit 1
++    end
++end
++
++/* cleanup the mess */
++error:
++
++if qRC = 0 & mRC = 0 then do
++    ok = SysFileDelete(mOutFile)
++    ok = SysFileDelete(mErrorFile)
++    ok = SysFileDelete(qOutFile)
++    ok = SysFileDelete(qErrorFile)
++end
++else do
++    if mRC <> 0 then do
++        say "Alarm! Make errors occured! Look at "mOutFile" and "mErrorFile
++    end
++    if qRC <> 0 then do
++        say "Alarm! qMake errors occured! Look at "qOutFile" and "qErrorFile
++    end
++end
++
++exit 0
++
++qmake:
++    sourceFile = sourceDir || '/qpdfview.pro'
++    address cmd 'qmake "CONFIG+=without_pkgconfig" "CONFIG+=without_dbus" "CONFIG+=without_magic" ' sourceFile ' 2>'qErrorFile' 1>'qOutFile
++
++    qRC = RC
++    if qRC <> 0 then do
++        call beep 880, 20
++        say "Alarm! qmake RC="RC
++    end
++return
++
++make:
++    makeparm = arg(1)
++    address cmd 'make 'makeparm' 2>'mErrorFile' 1>'mOutFile
++    mRC = RC
++    if mRC <> 0 then do
++        call beep 880, 20
++        say "Alarm! make RC="RC
++    end
++return
++
++
++deleteall: /* delete installDir (including subdirs) except zip files */
++
++    say "Delete all files except *zip in " installDir
++    ok = SysFileTree(installDir||'\*', rm.,'FOS')
++    do i = 1 to rm.0
++       if translate(right(rm.i, 3)) \== 'ZIP' then do
++          ok = SysFileDelete(rm.i)
++       end
++    end
++
++    say "Delete zip file " zipFile
++    ok = SysFileDelete(zipFile)
++
++    say "Removing subdirs from " || installDir
++    ok = SysFileTree(installDir||'\*', rm.,'OS')
++    do i = 1 to rm.0
++       ok = SysRmDir(rm.i)
++    end
++
++    call SysSleep(5)
++return
++
++/**
++ *  Fixes the directory path by a) converting all slashes to back
++ *  slashes and b) ensuring that the trailing slash is present if
++ *  the directory is the root directory, and absent otherwise.
++ *
++ *  @param dir      the directory path
++ *  @param noslash
++ *      optional argument. If 1, the path returned will not have a
++ *      trailing slash anyway. Useful for concatenating it with a
++ *      file name.
++ */
++FixDir: procedure expose (Globals)
++    parse arg dir, noslash
++    noslash = (noslash = 1)
++    dir = translate(dir, '\', '/')
++    if (right(dir, 1) == '\' &,
++        (noslash | \(length(dir) == 3 & (substr(dir, 2, 1) == ':')))) then
++        dir = substr(dir, 1, length(dir) - 1)
++    return dir
++
++/**
++ *  reads the version.cpp and gets the Qpdfview version from there
++ */ 
++version: procedure expose Qpdfview_version Qpdfview_build srcDir
++
++    QpdfviewVer = ' '
++    /* Qpdfview Version file */
++    Version = srcDir || "\qpdfview.pri"
++
++    do until lines(Version) = 0
++        verline = linein(Version)
++        if substr(Verline,30,19) = "APPLICATION_VERSION" then do
++            parse var verline . ' '. ' ' QpdfviewVer
++        end
++    end
++
++    ok = stream(Version,'c','close')
++    if QpdfviewVer \== ' ' then do
++    	QpdfviewVer = strip(QpdfviewVer,,'"')
++	parse var QpdfviewVer ver '.' maj '.' min '.' Qpdfview_build
++    	Qpdfview_version = ver || '.'|| maj || '.' || min
++    end
++
++    if Qpdfview_build == '' then do
++    	Qpdfview_build = 'GA'
++    end
++
++    return
++
++/**
++ *  reads the qpdfview_os2.pri and some values from there
++ */ 
++getpri: procedure expose popplerDir djvuDir psDir tiffDir srcDir
++
++    /* Qpdfview_os2.pri file */
++    priFile = srcDir || "\qpdfview_os2.pri"
++
++    do until lines(priFile) = 0
++        verline = linein(priFile)
++        verline = strip(verline,,' ')
++        if substr(Verline,1,8) = "PDF_ROOT" then do
++            parse var verline . ' '. ' ' popplerDir
++        end
++        if substr(Verline,1,9) = "DJVU_ROOT" then do
++            parse var verline . ' '. ' ' djvuDir
++        end
++        if substr(Verline,1,7) = "PS_ROOT" then do
++            parse var verline . ' '. ' ' psDir
++        end
++        if substr(Verline,1,9) = "TIFF_ROOT" then do
++            parse var verline . ' '. ' ' tiffDir
++        end
++    end
++
++    ok = stream(priFile,'c','close')
++    popplerDir = FixDir(popplerDir)
++    djvuDir = FixDir(djvuDir)
++    psDir = FixDir(psDir)
++    tiffDir = FixDir(tiffDir)
++    return
++
++help:
++    say "Parameters:"
++    say "    make"
++    say "    make debug"
++    say "    make clean"
++    say "    install build (build overwrites what this script finds)"
++    say "    uninstall"
++    say "    diff (creates a diff from vendor to trunk)"
++exit 255
+diff -Naur -x qpdfview.desktop E:\trees\qpdfview\trunk\..\vendor\current/install.os2 E:\trees\qpdfview\trunk/install.os2
+--- E:\trees\qpdfview\trunk\..\vendor\current/install.os2	1970-01-01 01:00:00.000000000 +0100
++++ E:\trees\qpdfview\trunk/install.os2	2013-12-03 15:38:04.000000000 +0100
+@@ -0,0 +1,307 @@
++Qpdfview _VERSION_ _BUILD_ installation
++
++
++0. CONTENTS OF THIS FILE
++========================
++
++1. INTRODUCTION
++
++2. REQUIREMENTS
++
++3. INSTALLATION
++
++4. BUGREPORTS
++
++5. CREDITS
++
++6. SUPPORT AND DONATIONS
++
++7. HISTORY
++
++
++1. INTRODUCTION
++===============
++
++Welcome to Qpdfview _VERSION_ _BUILD_ port for OS/2 and eComStation.
++
++
++2. REQUIREMENTS
++===============
++
++The following requirements need to be installed.
++
++
++2.1 kLIBC, GCC4Core, Qt4, Zlib, cups
++------------------------------------
++
++The installation of these products can be done either by RPM or ZIP files.
++
++2.1.a RPM installation
++----------------------
++
++kLIBC
++-----
++
++  1. yum install libc
++
++GCC4Core
++--------
++
++  1. yum install libgcc4*
++  2. yum install gcc-stack-protector
++  3. yum install gcc-stdc++-shared-library
++  4. yum install gcc-supc++-shared-library
++
++Qt4 dll
++-------
++
++  1. yum install libqt4
++
++Zlib
++----
++
++  1. yum install zlib
++
++Jpeg
++----
++
++  1. yum install libjpeg
++
++djvulibre
++---------
++
++  not available as a rpm at this time of writing
++
++cups
++----
++
++  not available as a rpm at this time of writing
++
++freetype/fontconfig
++-------------------
++
++  not available as a rpm at this time of writing
++
++ghstscript
++----------
++
++  not available as a rpm at this time of writing
++
++pthread
++-------
++
++  1. yum install pthread
++
++
++2.1.b ZIP Installation
++----------------------
++
++kLIBC
++-----
++
++  1. Download kLIBC 0.6.5 or better (see http://svn.netlabs.org/libc for more
++     information)
++  2. Install the files to your libpath eg x:\ecs\dll
++
++GCC4Core
++--------
++
++  1. Download GCC4Core 1.2.1 or better from http://ftp.netlabs.org/pub/gcc
++  2. Install the files to your libpath eg. x:\ecs\dll
++
++Qt4 dll
++-------
++
++  1. Download Qt4 4.7.3 or better (see http://svn.netlabs.org/qt4 for more 
++     information)
++  2. Install the files according to the readme
++
++Zlib
++----
++
++  1. Download zlib from http://rpm.netlabs.org/release/00/zip
++  2. Unpack and install z.dll to your libpath eg. x:\ecs\dll
++
++Jpeg
++----
++
++  1. Download jpeg from http://rpm.netlabs.org/release/00/zip
++  2. Unpack and install jpeg.dll to your libpath eg. x:\ecs\dll
++
++djvulibre
++---------
++
++  1. Download djvulibre from ftp://ftp.netlabs.org/pub/unixos2/djvulibre-3_5_25.zip
++  2. Unpack and install djvu.dll to your libpath eg. x:\ecs\dll
++
++cups
++----
++
++  1. Go to eCUPS wiki to see how to install eCUPS (http://svn.netlabs.org/ecups)
++  2. Install eCUPS according to the above wiki
++
++freetype/fontconfig
++-------------------
++
++  1. Download MZFNTCFGFT_RUNTIME as zip or wpi from 
++     ftp://ftp.netlabs.org/incoming/mozilla
++  2. Unpack and install it to your libpath eg. x:\ecs\dll
++
++ghostscript
++-----------
++
++  1. Download ghostscript as zip from ftp://ftp.netlabs.org/pub/unixos2/gs871os2.zip
++  2. Unpack and install the gsdll23.dll to your libpath eg. x:\ecs\dll
++     (note this ghostscript it right now not compatible with P. Smedley's port)
++
++pthread
++-------
++
++  1. Download pthread from http://rpm.netlabs.org/release/00/zip
++  2. Unpack and install pthr01.dll to your libpath eg. x:\ecs\dll
++ 
++
++3. INSTALLATION
++===============
++          
++To install qpdfview, do the following:
++
++  1. Create a directory for qpdfview.
++  2. Extract the qpdfview package to the new directory.
++  3. Create a WPS object for qdpfview.exe.
++  4. Start qdpfview
++  5. Happy using it
++  6. If you want to use qpdfview from within a browser, you have to copy
++     popp*.dll and tiff.dll to the libpath eg. x:\ecs\dll
++
++If you have tried to open a file and not all requirements have been there at
++this try, Qt screwed his plugin cache.
++To overcome that delete %HOME%/.config/Trolltech.ini. It will be created again
++when a Qt app starts.
++
++Optional: to have special fonts working you need poppler-data pack.
++
++  - extract the 4 directories from the package found on http://poppler.freedesktop.org
++    to your %unixroot%/usr/local/share/poppler or to the dir where qpdfview.exe is installed
++  - if you also want japanese fonts working, take care that the "Times New Roman WT J" font
++    is installed. This font is used as a fallback
++  
++
++4. BUGREPORTS
++=============
++
++Please create bugreports at http://svn.netlabs.org/qtapps
++Only bug reports with a reproducable bug are accepted. :-)
++
++
++5. CREDITS
++==========
++
++The port was done by:
++
++Silvan Scherrer aka _diver
++
++Thanks go to:
++
++  * Dmitriy Kuminov
++
++They either helped me when I had some nasty questions or did some testing for
++me.
++
++
++6. SUPPORT AND DONATIONS
++========================
++
++qpdfview port is based on volunteer work. If you would like to support further
++development, you can do so in one of the following ways:
++
++
++  * Donate to the Qt4 project: see qt.netlabs.org for more information
++
++  * Contribute to the project: Besides actual development, this also includes
++    maintaining the documentation and the project web site as well as help
++    for users.
++
++
++7. HISTORY
++==========
++
++2013-12-03
++
++  * updated to latest qpdfview 0.4.7 source
++
++2013-11-29
++
++  * updated to latest poppler 0.24.4
++
++2013-10-15
++
++  * updated to latest qpdfview 0.4.6 source
++
++2013-08-14
++
++  * updated to latest qpdfview 0.4.4.99 source
++  * updated to latest poppler 0.24.0
++
++2013-06-17
++
++  * added .ps and .eps file support
++
++2013-05-27
++
++  * updated to latest qpdfview 0.4.3 source
++
++2013-05-14
++
++  * updated to latest qpdfview 0.4.3 beta source
++
++2013-04-25
++
++  * updated to latest poppler 0.22.3
++
++2013-04-19
++
++  * updated to latest qpdfview 0.4.2 beta source
++
++2013-03-25
++
++  * updated to latest qpdfview 0.4.1 source
++
++2013-03-20
++
++  * updated to latest qpdfview 0.4.1 beta source
++
++2013-02-19
++
++  * updated to latest qpdfview 0.4.0 source
++
++2013-02-12
++
++  * updated to latest qpdfview 0.4.0 beta1 source
++
++2013-02-06
++
++  * updated to latest qpdfview 0.3.7 source
++
++2013-01-14
++
++  * updated to latest poppler 0.22.0
++
++2012-12-13
++
++  * updated to latest qpdfview 0.3.7 beta 1 source
++
++2012-11-27
++
++  * updated to latest qpdfview source
++
++2012-10-29
++
++  * created install.os2
++  * updated qpdfview to contain a icon (thx Herwig)
++
++2012-10-24
++
++  * first public port
++
++
+diff -Naur -x qpdfview.desktop E:\trees\qpdfview\trunk\..\vendor\current/qpdfview_os2.pri E:\trees\qpdfview\trunk/qpdfview_os2.pri
+--- E:\trees\qpdfview\trunk\..\vendor\current/qpdfview_os2.pri	1970-01-01 01:00:00.000000000 +0100
++++ E:\trees\qpdfview\trunk/qpdfview_os2.pri	2013-10-16 14:55:40.000000000 +0200
+@@ -0,0 +1,38 @@
++# define destdir
++PLUGIN_DESTDIR = lib
++
++# define the djvu part
++DJVU_ROOT = e:/trees/djvulibre/trunk
++DJVU_PLUGIN_LIBS += -L$$DJVU_ROOT/libdjvu/.libs
++DJVU_PLUGIN_LIBS += djvulibre
++DJVU_PLUGIN_INCLUDEPATH += $$DJVU_ROOT
++DJVU_PLUGIN = qpdfdjvu
++DJVU_PLUGIN_NAME = $$DJVU_PLUGIN".dll"
++
++# define the poppler part
++PDF_ROOT = e:/trees/poppler/trunk
++PDF_PLUGIN_DEFINES += HAS_POPPLER_14 HAS_POPPLER_18 HAS_POPPLER_20 HAS_POPPLER_22 HAS_POPPLER_24
++PDF_PLUGIN_LIBS += -L$$PDF_ROOT/qt4/src/.libs
++PDF_PLUGIN_LIBS += popplerqt4
++PDF_PLUGIN_INCLUDEPATH += $$PDF_ROOT/qt4/src
++PDF_PLUGIN = qpdfpdf
++PDF_PLUGIN_NAME = $$PDF_PLUGIN".dll"
++
++# define the ps part
++PS_ROOT = e:/trees/libspectre/trunk
++PS_PLUGIN_LIBS += -L$$PS_ROOT/libspectre/.libs -Le:/trees/ghostscript/trunk/gs8.71/bin
++PS_PLUGIN_LIBS += spectre gs
++PS_PLUGIN_INCLUDEPATH += $$PS_ROOT
++PS_PLUGIN = qpdfps
++PS_PLUGIN_NAME = $$PS_PLUGIN".dll"
++
++# define the cups part
++CUPS_LIBS += cups
++
++# define the vendor part
++DEF_FILE_VENDOR = bww bitwise works GmbH
++DEF_FILE_VERSION = $$APPLICATION_VERSION
++DEF_FILE_DESCRIPTION = eCS (OS/2) port of qpdfview by Adam Reichold
++
++# define tiff, as copied to qpdfview package
++TIFF_ROOT = e:/trees/libtiff/trunk
+diff -Naur -x qpdfview.desktop E:\trees\qpdfview\trunk\..\vendor\current/synctex/synctex_parser_utils.c E:\trees\qpdfview\trunk/synctex/synctex_parser_utils.c
+--- E:\trees\qpdfview\trunk\..\vendor\current/synctex/synctex_parser_utils.c	2013-03-24 14:30:12.000000000 +0100
++++ E:\trees\qpdfview\trunk/synctex/synctex_parser_utils.c	2013-03-20 17:08:22.000000000 +0100
+@@ -57,6 +57,10 @@
+ #define SYNCTEX_WINDOWS 1
+ #endif
+ 
++#if defined(__OS2__)
++#define SYNCTEX_OS2 1
++#endif
++
+ #ifdef _WIN32_WINNT_WINXP
+ #define SYNCTEX_RECENT_WINDOWS 1
+ #endif
+@@ -121,7 +125,7 @@
+ 				last_component = next+1;
+ 			}
+ 		}
+-#       ifdef	SYNCTEX_WINDOWS
++#       if defined(SYNCTEX_WINDOWS) || defined (SYNCTEX_OS2)
+ 		/*  On Windows, the '\' is also a path separator. */
+ 		while((next = strstr(last_component,"\\"))){
+ 			last_component = next+1;
+@@ -207,7 +211,7 @@
+ 	if(!strlen(name)) {
+ 		return synctex_NO;
+ 	}
+-#	if SYNCTEX_WINDOWS
++#	if defined(SYNCTEX_WINDOWS) || defined(SYNCTEX_OS2)
+ 	if(strlen(name)>2) {
+ 		return (name[1]==':' && SYNCTEX_IS_PATH_SEPARATOR(name[2]))?synctex_YES:synctex_NO;
+ 	}
+diff -Naur -x qpdfview.desktop E:\trees\qpdfview\trunk\..\vendor\current/synctex/synctex_parser_utils.h E:\trees\qpdfview\trunk/synctex/synctex_parser_utils.h
+--- E:\trees\qpdfview\trunk\..\vendor\current/synctex/synctex_parser_utils.h	2013-03-24 14:30:12.000000000 +0100
++++ E:\trees\qpdfview\trunk/synctex/synctex_parser_utils.h	2013-03-20 17:11:20.000000000 +0100
+@@ -64,7 +64,7 @@
+ #define FALSE 0
+ #define TRUE !FALSE
+ 
+-#	if _WIN32
++#	if defined(_WIN32) || defined(__OS2__)
+ #       define SYNCTEX_CASE_SENSITIVE_PATH FALSE
+ #		define SYNCTEX_IS_PATH_SEPARATOR(c) ('/' == c || '\\' == c)
+ #	else
+@@ -72,7 +72,7 @@
+ #		define SYNCTEX_IS_PATH_SEPARATOR(c) ('/' == c)
+ #	endif
+     
+-#	if _WIN32
++#	if defined(_WIN32) || defined(__OS2__)
+ #		define SYNCTEX_IS_DOT(c) ('.' == c)
+ #	else
+ #		define SYNCTEX_IS_DOT(c) ('.' == c)
