source: diffs/psi_0.16.diff@ 171

Last change on this file since 171 was 160, checked in by Silvan Scherrer, 11 years ago

updated psi to latest 0.16 dev

File size: 63.5 KB
Line 
1diff -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/build.txt trunk/build.txt
2--- vendor/current/build.txt 1970-01-01 01:00:00.000000000 +0100
3+++ trunk/build.txt 2014-04-23 12:11:54.000000000 +0200
4@@ -0,0 +1 @@
5+sh configure --enable-webkit --with-idn-inc=e:/trees/libidn/trunk/lib --with-idn-lib=e:/trees/libidn/trunk/lib/.libs --with-qca-inc=e:/trees/qca/include --with-qca-lib=e:/trees/qca/lib
6diff -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
7--- vendor/current/configure 2014-04-17 19:28:52.000000000 +0200
8+++ trunk/configure 2014-04-23 11:58:12.000000000 +0200
9@@ -959,8 +959,8 @@
10 QString shortname() const { return "qjdns"; }
11 bool exec()
12 {
13-#if defined Q_OS_WIN || defined Q_OS_MAC
14- // HACK: on Windows and Mac OS X, always use psi's bundled qjdns
15+#if defined Q_OS_WIN || defined Q_OS_MAC || defined Q_OS_OS2
16+ // HACK: on Windows, OS/2 and Mac OS X, always use psi's bundled qjdns
17 conf->addExtra("CONFIG += iris-qjdns");
18 return true;
19 #else
20@@ -1071,13 +1071,13 @@
21 qc_qdbus(Conf *c) : ConfObj(c) {}
22 QString name() const { return "QDBUS"; }
23 QString shortname() const { return "qdbus"; }
24-#ifdef Q_OS_WIN
25+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
26 QString checkString() const { return QString(); }
27 #endif
28 bool exec()
29 {
30-#ifdef Q_OS_WIN
31- // skip dbus support on windows
32+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
33+ // skip dbus support on windows and OS/2
34 return false;
35 #else
36 if (!conf->getenv("QC_DISABLE_qdbus").isEmpty())
37@@ -1958,18 +1958,36 @@
38 QString path = qc_getenv("PATH");
39 if(!path.isEmpty())
40 {
41-#ifdef Q_OS_WIN
42+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
43 list = path.split(';', QString::SkipEmptyParts);
44 #else
45 list = path.split(':', QString::SkipEmptyParts);
46 #endif
47 }
48-#ifdef Q_OS_WIN
49+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
50 list.prepend(".");
51 #endif
52 return list;
53 }
54
55+#ifdef Q_OS_OS2
56+QStringList qc_getpath(const int type)
57+{
58+ QStringList list;
59+ QString path;
60+ if (type == 1)
61+ path = qc_getenv("CPLUS_INCLUDE_PATH");
62+ else
63+ path = qc_getenv("LIBRARY_PATH");
64+
65+ if(!path.isEmpty())
66+ {
67+ list = path.split(';', QString::SkipEmptyParts);
68+ }
69+ return list;
70+}
71+#endif
72+
73 QString qc_findprogram(const QString &prog)
74 {
75 QString out;
76@@ -1983,8 +2001,8 @@
77 break;
78 }
79
80-#ifdef Q_OS_WIN
81- // on windows, be sure to look for .exe
82+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
83+ // on windows and OS/2, be sure to look for .exe
84 if(prog.right(4).toLower() != ".exe")
85 {
86 fi = QFileInfo(list[n] + '/' + prog + ".exe");
87@@ -2001,7 +2019,7 @@
88
89 QString qc_findself(const QString &argv0)
90 {
91-#ifdef Q_OS_WIN
92+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
93 if(argv0.contains('\\\\'))
94 #else
95 if(argv0.contains('/'))
96@@ -2454,6 +2472,9 @@
97 QStringList dirs;
98 dirs += "/usr/local/include";
99 dirs += ext;
100+#ifdef Q_OS_OS2
101+ dirs += qc_getpath(1);
102+#endif
103 for(QStringList::ConstIterator it = dirs.begin(); it != dirs.end(); ++it)
104 {
105 if(checkHeader(*it, h))
106@@ -2496,6 +2517,18 @@
107 *lib = "/usr/local/lib";
108 return true;
109 }
110+#ifdef Q_OS_OS2
111+ QStringList dirs;
112+ dirs += qc_getpath(2);
113+ for(QStringList::ConstIterator it = dirs.begin(); it != dirs.end(); ++it)
114+ {
115+ if(checkLibrary(*it, name))
116+ {
117+ *lib = *it;
118+ return true;
119+ }
120+ }
121+#endif
122 return false;
123 }
124
125diff -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/configure trunk/iris/configure
126--- vendor/current/iris/configure 2014-04-17 19:29:12.000000000 +0200
127+++ trunk/iris/configure 2014-04-23 10:36:10.000000000 +0200
128@@ -1018,8 +1018,8 @@
129 QString shortname() const { return "qjdns"; }
130 bool exec()
131 {
132-#if defined Q_OS_WIN || Q_OS_MAC
133- // HACK: on Windows and Mac OS X, always use psi's bundled qjdns
134+#if defined Q_OS_WIN || defined Q_OS_MAC || defined Q_OS_OS2
135+ // HACK: on Windows, OS/2 and Mac OS X, always use psi's bundled qjdns
136 conf->addExtra("CONFIG += iris-qjdns");
137 return true;
138 #else
139diff -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/qcm/qjdns.qcm trunk/iris/qcm/qjdns.qcm
140--- vendor/current/iris/qcm/qjdns.qcm 2014-04-17 19:29:12.000000000 +0200
141+++ trunk/iris/qcm/qjdns.qcm 2014-04-23 10:35:38.000000000 +0200
142@@ -17,8 +17,8 @@
143 QString shortname() const { return "qjdns"; }
144 bool exec()
145 {
146-#if defined Q_OS_WIN || defined Q_OS_MAC
147- // HACK: on Windows and Mac OS X, always use psi's bundled qjdns
148+#if defined Q_OS_WIN || defined Q_OS_MAC || defined Q_OS_OS2
149+ // HACK: on Windows, OS/2 and Mac OS X, always use psi's bundled qjdns
150 conf->addExtra("CONFIG += iris-qjdns");
151 return true;
152 #else
153diff -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
154--- vendor/current/iris/src/irisnet/corelib/corelib.pri 2014-04-17 19:29:12.000000000 +0200
155+++ trunk/iris/src/irisnet/corelib/corelib.pri 2014-04-23 10:37:56.000000000 +0200
156@@ -30,6 +30,11 @@
157 $$PWD/netinterface_unix.cpp
158 }
159
160+os2 {
161+ SOURCES += \
162+ $$PWD/netinterface_unix.cpp
163+}
164+
165 windows {
166 SOURCES += \
167 $$PWD/netinterface_win.cpp
168diff -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
169--- vendor/current/iris/src/irisnet/corelib/irisnetglobal.cpp 2012-10-04 02:53:08.000000000 +0200
170+++ trunk/iris/src/irisnet/corelib/irisnetglobal.cpp 2012-10-16 17:42:50.000000000 +0200
171@@ -28,7 +28,7 @@
172 #ifdef Q_OS_WIN
173 extern IrisNetProvider *irisnet_createWinNetProvider();
174 #endif
175-#ifdef Q_OS_UNIX
176+#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
177 extern IrisNetProvider *irisnet_createUnixNetProvider();
178 #endif
179 extern IrisNetProvider *irisnet_createJDnsProvider();
180@@ -183,7 +183,7 @@
181 #ifdef Q_OS_WIN
182 addBuiltIn(irisnet_createWinNetProvider());
183 #endif
184-#ifdef Q_OS_UNIX
185+#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
186 addBuiltIn(irisnet_createUnixNetProvider());
187 #endif
188 addBuiltIn(irisnet_createJDnsProvider());
189diff -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
190--- vendor/current/iris/src/irisnet/corelib/netinterface_unix.cpp 2012-10-04 02:53:08.000000000 +0200
191+++ trunk/iris/src/irisnet/corelib/netinterface_unix.cpp 2012-10-18 15:13:40.000000000 +0200
192@@ -97,8 +97,10 @@
193
194 if(((struct sockaddr *)&ifr->ifr_addr)->sa_family == AF_INET) {
195 sockaddr_len = sizeof(struct sockaddr_in);
196+#ifndef Q_OS_OS2
197 } else if(((struct sockaddr *)&ifr->ifr_addr)->sa_family == AF_INET6) {
198 sockaddr_len = sizeof(struct sockaddr_in6);
199+#endif
200 } else {
201 sockaddr_len = sizeof(struct sockaddr);
202 }
203diff -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
204--- vendor/current/iris/src/irisnet/noncore/cutestuff/socks.cpp 2013-08-22 16:54:12.000000000 +0200
205+++ trunk/iris/src/irisnet/noncore/cutestuff/socks.cpp 2013-08-22 17:30:26.000000000 +0200
206@@ -27,7 +27,7 @@
207 #include <QSocketNotifier>
208 #include <QByteArray>
209
210-#ifdef Q_OS_UNIX
211+#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
212 #include <sys/types.h>
213 #include <netinet/in.h>
214 #endif
215@@ -36,7 +36,7 @@
216 #include <windows.h>
217 #endif
218
219-#ifdef Q_OS_UNIX
220+#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
221 #include <unistd.h>
222 #include <fcntl.h>
223 #endif
224diff -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
225--- vendor/current/iris/src/irisnet/noncore/turnclient.cpp 2013-08-22 16:54:12.000000000 +0200
226+++ trunk/iris/src/irisnet/noncore/turnclient.cpp 2013-08-22 17:49:06.000000000 +0200
227@@ -29,7 +29,11 @@
228 #include "bytestream.h"
229 #include "bsocket.h"
230 #include "httpconnect.h"
231+#ifdef Q_OS_OS2
232+#include "../cutestuff/socks.h"
233+#else
234 #include "socks.h"
235+#endif
236
237 namespace XMPP {
238
239diff -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/src/jdns/jdns_p.h trunk/iris/src/jdns/src/jdns/jdns_p.h
240--- vendor/current/iris/src/jdns/src/jdns/jdns_p.h 2014-04-17 19:29:14.000000000 +0200
241+++ trunk/iris/src/jdns/src/jdns/jdns_p.h 2014-04-23 11:14:00.000000000 +0200
242@@ -32,6 +32,8 @@
243
244 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
245 # define JDNS_OS_WIN
246+#elif defined(__OS2__) || defined(OS2) || defined(_OS2)
247+# define JDNS_OS_OS2
248 #else
249 # define JDNS_OS_UNIX
250 #endif
251@@ -50,7 +52,7 @@
252 # include <windows.h>
253 #endif
254
255-#ifdef JDNS_OS_UNIX
256+#if defined(JDNS_OS_UNIX) || defined(JDNS_OS_OS2)
257 # include <unistd.h>
258 # include <netinet/in.h>
259 #endif
260diff -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/src/jdns/jdns_sys.c trunk/iris/src/jdns/src/jdns/jdns_sys.c
261--- vendor/current/iris/src/jdns/src/jdns/jdns_sys.c 2014-04-17 19:29:14.000000000 +0200
262+++ trunk/iris/src/jdns/src/jdns/jdns_sys.c 2014-04-23 11:18:56.000000000 +0200
263@@ -117,7 +117,7 @@
264 # include <windows.h>
265 #endif
266
267-#ifdef JDNS_OS_UNIX
268+#if defined(JDNS_OS_UNIX) || defined(JDNS_OS_OS2)
269 # include <netinet/in.h>
270 # include <arpa/nameser.h>
271 # include <resolv.h>
272@@ -632,7 +632,7 @@
273
274 #endif
275
276-#ifdef JDNS_OS_UNIX
277+#if defined(JDNS_OS_UNIX) || defined(JDNS_OS_OS2)
278
279 static jdns_dnsparams_t *dnsparams_get_unixfiles()
280 {
281@@ -644,7 +644,13 @@
282
283 params = jdns_dnsparams_new();
284
285+#ifdef JDNS_OS_OS2
286+ char resolvFile[MAXPATHLEN];
287+ sprintf(resolvFile, "%s/resolv2", getenv("ETC"));
288+ f = jdns_fopen(resolvFile, "r");
289+#else
290 f = jdns_fopen("/etc/resolv.conf", "r");
291+#endif
292 if(!f)
293 return params;
294 while(1)
295@@ -717,8 +723,13 @@
296 return -1;
297 return mac_res_init();
298 #else
299+#ifdef JDNS_OS_OS2 // on os2 we don't care about returncode
300+ res_init();
301+ return 0;
302+#else
303 return res_init();
304 #endif
305+#endif
306 }
307 #endif
308
309@@ -752,6 +763,7 @@
310 if(n == -1)
311 return params;
312
313+#ifndef JDNS_OS_OS2 //no ipv6 on os2
314 // nameservers - ipv6
315 #ifdef __GLIBC__
316 for(n = 0; n < MAXNS && n < RESVAR._u._ext.nscount6; ++n)
317@@ -779,6 +791,7 @@
318 jdns_dnsparams_append_nameserver(params, addr, JDNS_UNICAST_PORT);
319 jdns_address_delete(addr);
320 }
321+#endif
322
323 // nameservers - ipv4
324 for(n = 0; n < MAXNS && n < RESVAR.nscount; ++n)
325@@ -841,7 +854,13 @@
326 params = dnsparams_get_unixfiles();
327 }
328
329+#ifdef JDNS_OS_OS2
330+ char hostsFile[MAXPATHLEN];
331+ sprintf(hostsFile, "%s/hosts", getenv("ETC"));
332+ apply_hosts_file(params, hostsFile);
333+#else
334 apply_hosts_file(params, "/etc/hosts");
335+#endif
336
337 return params;
338 }
339diff -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/src/qjdns/qjdns_sock.cpp trunk/iris/src/jdns/src/qjdns/qjdns_sock.cpp
340--- vendor/current/iris/src/jdns/src/qjdns/qjdns_sock.cpp 2014-04-17 19:29:14.000000000 +0200
341+++ trunk/iris/src/jdns/src/qjdns/qjdns_sock.cpp 2014-04-23 11:19:34.000000000 +0200
342@@ -33,7 +33,7 @@
343 # include <ws2tcpip.h>
344 #endif
345
346-#ifdef Q_OS_UNIX
347+#if defined(Q_OS_UNIX) || defined(Q_OS_OS2)
348 # include <sys/time.h>
349 # include <sys/types.h>
350 # include <sys/socket.h>
351diff -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
352--- vendor/current/iris/src/xmpp/xmpp-core/connector.cpp 2013-08-22 16:54:12.000000000 +0200
353+++ trunk/iris/src/xmpp/xmpp-core/connector.cpp 2013-08-22 18:01:58.000000000 +0200
354@@ -40,7 +40,11 @@
355 #include "bsocket.h"
356 #include "httpconnect.h"
357 #include "httppoll.h"
358+#ifdef Q_OS_OS2
359+#include "../../irisnet/noncore/cutestuff/socks.h"
360+#else
361 #include "socks.h"
362+#endif
363
364 //#define XMPP_DEBUG
365
366diff -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
367--- vendor/current/iris/src/xmpp/xmpp-im/s5b.cpp 2013-08-22 16:54:12.000000000 +0200
368+++ trunk/iris/src/xmpp/xmpp-im/s5b.cpp 2013-08-22 18:06:04.000000000 +0200
369@@ -27,7 +27,11 @@
370 #include <qca.h>
371 #include "xmpp_xmlcommon.h"
372 #include "im.h"
373+#ifdef Q_OS_OS2
374+#include "../../irisnet/noncore/cutestuff/socks.h"
375+#else
376 #include "socks.h"
377+#endif
378 #include "safedelete.h"
379
380 #ifdef Q_OS_WIN
381diff -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
382--- vendor/current/os2/app.ico 1970-01-01 01:00:00.000000000 +0100
383+++ trunk/os2/app.ico 2012-10-18 21:15:20.000000000 +0200
384@@ -0,0 +1,30 @@
385+BA(HCI°
386+
387 ÿÿÿCI0
388
389€€€“R0€€€€ðŒ†ÿݧÿÅ€ g@ÿÿÿÿÿÿÿÿÿÿÿÿðûÿޒZÔðÿ±âÿŽÔÿkÆÿHžÿ%ªÿªÿ’Üz¹b–Js2PÔãÿ±ÇÿŽ«ÿkÿHsÿ%WÿUÿIÜ=¹1–%sPÔÔÿ±±ÿŽŽÿkkÿHHÿ%%ÿÿܹ–sP๏Šy«ŽÿkÿsHÿW%ÿUÿIÜ=¹1–%sPðÔÿå§xԎÿÆkÿžHÿª%ÿªÿ’Üz¹b–Js2PýϚÿ±ÿÿŽÿÿkÿÿHÿÿ%ÿÿÿÜܹ¹––ssPPÿЖÿštÿžTÿkÆÿHžÿ%ªÿªÜ’¹z–b}V:iO:ÿœÿǡ임֋gî…
390Yó„FÿŸWß~C¹uHŠN&u9#PÿÔŽÿŸŒÒ›zÒpeãaAóMÿܹ–sPÿÃÿŠҞ{êwhÉn]íkHí†HŽO/¹5(y6
391z4PÿôàÿКÿÖ°å•têŽ_ã‚Wÿ k܂]»`:¯eF‡A3T0
392ÿ؛ÿ»uÿµuÿ²|ÿ“Lÿ¢XÿÿÜÜÁoC–fD{D*vO4ÿÚ¥ýčÿÀÿ«jáLªÿ%ªÿ’Üz¹b–Js2PÿûÇߺî¿ŒÿksÿHWÿ%UÿIÜ=¹1–%sPÔÿÔ±ÿ±ŽÿŽkÿkHÿH%ÿ%ÿܹ–sPÔÿã±ÿǎÿ«kÿHÿs%ÿWÿUÜI¹=–1s%PÔÿð±ÿâŽÿÔkÿÆHÿž%ÿªÿªÜ’¹z–bsJP2Ôÿÿ±ÿÿŽÿÿkÿÿHÿÿ%ÿÿÿÿÜܹ¹––ssPPùàµÿã«ÿњýϕû¿‰ëšvï hݞk·•jӋfÖxFžrS{Y9WFfK3_B.Q6"&&&BA(CI0
393
394 @ÿÿÿCI0
395
396 # ;=>>>??AB C
397+E
398
399F
400
401F
402
403G
404G!I#J$L%O%R&T&V'X'Y'[%]#
405^"
406b"
407e"
408h"
409k"
410n#
411q$
412s't)u)x)|,€.„0‡0‰0Œ-,‘,”+˜+,£-©/¬/²-·+º+Ÿ.¿2Ÿ6»:
413ž=ŽB"°F%¬J(¥N, R.U1ŸW3 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ʈỶ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
4140`ÿÿÿCI0
41500
416
417"
418+&
419*
420-/149>BHMSVZ`$
421+b%
422d'
423h'
424j)
425n*
426o+r-t-v,y)
427|%
428€&
429ƒ&
430‡&
431Š&
432&
433”&
434+—,
435™2›6›9 ;€;š;š7©5«2®/
436°,
437²*
438³*
439µ+
440ž,
441»-
442Ÿ-
443Å-
444Ì/Ò2Ù6Ü8Þ<Þ?Ý@ÜAÛBÚC×DÕEÕF×GÛJ
445Ü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þ…
446Bþ‡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ý±{þ²|þ³{þ±|ý²~üށüµ…
447ü¶†ý¹†þœ„þŸƒþ¿…
448þÀ†þˆþÊþŌþƍþǐþɒþɓþǔþÁ•þŸ—þœ–þœ—þœ˜þ¿œþÁ þ¡þ¡þâþáþÅ¡ÿÿÿþ˝þ͜þϛþЛþѝþҟþÑ¢þÑ¥þѧþЩþέþΰþϳþ϶þÑ·þÔžþضþÛ³þÞ²þá³þã¶þæŒþçÁþçÆþçÊþèÎþêÑþëÓþï×þðØBA(
449+CI0
450
451 ÿÿÿCI°
452
453BA(h
454+CI°
455 @ÿÿÿCI°!
456 BA(CI°-
4570`ÿÿÿCI°0
45800ÿÿøÿøààääGægâgÂ'Â'ç7ÿ1ÿÿ“ÿ÷8ìg±°9ü£Pî€í²f\ñð¥Ehóò€¢ ŠŠ—§ö™
459+š™p†^onyqš’]mœ‰”iõ“r‘›tk‡Ž•lux…
460 Šjûúø„Œ–‚÷ôƒˆùvwÿÿÿÿÿÿÿÿÿÁÿÿÿÁÿÿÿÀÿÿÿ€ÿþÿþÿüÿüÿø0@ø0`ø80?ü8?ü8?ü<þ
461
462þ
463
464ø
465
466ð
467
468ð
469ð
470ð
471
472ÿþÿÿÿÛÿÿ“ÿÿÿÿ‚'ÿÿ‚Gÿÿ‡ÿÿÿÿÿÿ?ºÂÂÑuÀÿ÷ÿ¿_ñæîÑ%[ìááäŠs\,>žèèÔÒÒÔèëèÐz3ÌçÎÎÎÎÎÎÎÎÎÒèÎ_€àœŸÒÒПÌÔÒÒÌœÒÔgÌœŒÏ£iœŸŒÌqÏÌŒËÒ^e̳œ­£Ÿ³ÍchŸŒ²ŸŒ3pŒ²ŒsƒŒ²Œ€nŒ²²ŸsoŽžŽtް²¯)‡¶ž²²4žœž–!Ÿž›²Dž›²]Žš—B‰œ–hp•œˆl˜”˜ik—“•‰•”•“&““–‰•Ÿ›”6‰“‘“A»Æ°;ÕɺHo““I@iÊÉÆWlÊÈÊjk»¹¯XF—p‡ÆÇËoU¹ÕӉj¶¹³WkÆÉÆÇÇ×q ØÕ 7k޹²W‰ÊÕ×ÙÝËWpØ×»KlËËÉXSl¬º«lTÊØÕkTmlmLP¹Üى
473ŒÞܳ;3.-lÝÜÈL[¯Šº¿zO×ÞÜlAùvä`Çÿÿ«
474\õÀvï‚ÜÙºIr~Aö{QQQQ\õºŠû¥…
475Tÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿþ?ÿÿÿøÿÿÿàÿÿÿÀÿÿÿÀ?ÿÿ€ÿÿ€ÿÿÿÿÀ`ÿÿÀ0ÿÿÀ8ÿÿà<ÿÿà>ÿÿà
476ÿÿ€àÿÿ€ðÿÿ€pÿÿÀp€ÿÿÀx€ÿÿÀ8€ÿÿ@8€ÿþ8€ÿþ<€ÿü<€ÿü<€ÿø<€ÿü~€ÿÿþÿÿÿÿþÿÿÿÿÿþÿÿÿÿÌGÿÿÿÈÇÿÿÿØÇÿÿÿ€ðÿÿÿ€áÿÿÿ€cÿÿÿ€fÿÿÿÿø?ÿÿÿÿðÿÿÿÿðÿÿÿÿÿóÿ¶ŸŸŸŸÄ£Óÿÿÿÿÿô!†ü÷öõù÷44ôøõõ÷ùx$Âùôôõúƒ
4774€µéùèèç÷òÉœƒy( ˆçøøõéççæçô÷øø÷ä«5(µ÷õæåååååååååååçô÷ëš4­÷èÒÓÓÒÓÒÓÓÓäÓÓÒÒÒÓë÷Îs}óæÎÐÏÑçëèÐÐÐäëêæÑÏÐÏÑôælÁêÊÍÌÑëÕ·èÑÌÌÓâœÔëäÌÍÌÌéãouãÏÉÉËê«66ÇÓÉÉÌâm4‰ÔèÊÉÊÉèÎ7|äÂÂÂÓŸ,šâÂÂÂä„kÀçÉÂÂÂè®!‡ÑÂÂÂÔ}}ÔÂÂÂϺ
478W»ÔÂÂÂÂÓ{‡Ì¹¹ÂÍuoʹÂÉ4YÀɳ¹³Ìº(ŽÉ³³¹Éy®Â±³¹Ërdɹ³³¹Ëop±¯¯Â‹ŠÂ¯¯¯Â‰€Â¯¯¯Â§
4796®±¬«¹§!j¹®­¬³š!m¹¯¬«°Ž5”±¡¡¬¯67ª­¢¢­®5Ÿ°¡¢¢³kh­ Ÿ ®iŒ­Ÿ  ­ne­  Ÿ­ŒOžŸœ¡’
480k¢ššš ŽTŸžœ ›(——˜˜3PŸœŸ”%˜™œ›5X©®º²U”×ÈÆÈ®7]˜•”•—R8ªÖ×Ú֎`×ÚÙÚÅTV²¶¢™—U
481‘Ö××Ü€.R»ßÙÙÖaOµÆÃÃŽWV_1*\×רܻ7;ŠÞÙÙۖ*8©ÆÃûZŽÄ¥ŽŠÙØÙÜÆSŽßÛÙÜŽ::§ÆÃÀ»\<€ÙØ×ÙÙÙÚÞ×TTÈÞÚ߯R;€ÆÃÀ»\SÃׯרÙÙÚìÆNAºìÛÛÚa?€ÆÃû[>[ÃßààÞàìîî–=0’ìÞÜà•,B»íàßÚ_FRŒŒÚìíí֓GYààÜì·@GŽ‘‘‘‘SDEITVTGDEÆíÞìÈI>Šðììà\
482bñîìï”/LÞðíïÃB‰„„µ&ƒŸuCÆúïïÛIʱ&õõÉ÷w0Šúïïïa
483Q~ÿÆÓç(aòñïñŠ0røütxüÄHðýñúÛDŠÿÿ‡Åÿ}Cïþýýûb
484ÚðmiÿÔ@UjjjjJ=9*nùùr*‡ÿüa‡ïÿïVÛû‡BEEøÿðÿðàÀÀÀCÀà€#€‚þÿÿÿã
485 u=๏ùàµiO:3
486ߺÿûÇÅ yQ6"
487vO4ýϚÿݧÿњÿÚ¥ÿã«î¿Œ}V:k1ðŒ†ÿЖëšvû¿‰ýčå§xýϕÿ؛–fDÏtCÿœݞkd%
488ï hÿÃ{D*ÁoCÿÀÿÀT0
489Ê_1ÿ«jޒZA ÖxFÿ»u g@áLÿ»u¹uHd
490 í†HÿžTW'œD ÿ¢Xß~C¥B
491ÿŸWóM%ŠN&ÿµu“R0Mÿ kÿštH
492fó„Fÿ“LK
493y6
494»`:ÿǡӋf,܂]ÿКu9#ã‚Wÿ²|`)‹"
495+êŽ_ÿКÿԮ֋g<ŽO/ÿÖ°¯eF6î…
496YÿŸŒl,Ì+×:
497ãaAíkH•)±'ÿÅ€å•t.p)z4.
498i임ÿŠRW1_B.fK3{Y9%
499Én]ÿôà‡A3X)Ҟ{žrS·•jF%·*êwh¹5(a
500WFқzp;&ˆ
501ÒpeŒG0ÿÁÿÿÿ€ÿÿÿ€ÿÿÿ€ÿÿÿ€ÿþÿüÿüÿøøø?ø ?ø0øøüüøð
502ð
503àà
504àø
505ÿþÿþÿÿÿÿÿÿÿÿÿÿþÿÿþ
506
507Þx/íµ…
508è›èÁ•ôÊ ·Q
509^+ÿÿßÿôÆÿÿÜÝž‹ ¢d6ÿíŸÿâ®ÿí»ó͝E1‰P+Փcÿâ¹ÿÝ©ÿÝšÿàµÛŸq­wM‹U1K$
510 o8óŽ€ÿåµÿäŽÿ×€ÿԝÿӜÿ×£ÿä³ÿè¶ÿä³ÿ͜ʊZY*l4ýǓÿã³ÿΗÿ̑ÿϗÿΖÿΖÿΕÿΕÿϕÿΔÿÕ¡ÿä³ý˗¡\45åžjÿÛ©ÿÇÿŋÿҟÿÑ¡þΜÿňÿǎþЀÿРÿÕ¡ÿnjÿÇÿҜÿÙ¥ºn?ŠA
511ÿȔÿ‡ÿœ€ÿΙîŸkÅd2üœŒÿˆÿ¿‚ÿǓÌsC֍]ÿ͙ÿǎÿŒ}ÿōÿҝ¡Z0³a7ÿȐÿ¶vÿÁ‡òšwl(
512bîkÿÉÿµvÿʐªb>¿`2ÿŸ‰ÿÁ…
513ÿŽtÿÈÿº‚`)×q>ÿŒÿ®lÿÁƒÆzLà}Iÿ¿ƒÿ®nÿ¿Þ’`ên5ÿºƒÿŽuÿ®lÿĈÏ|LÖg5ÿŽyÿšeÿžxÑ}NÂY,ÿ³xÿ¬jÿ±oü©oG
514
515äyFÿž|ÿ©gÿ°oÿ®s]&±I!ü¥iÿ€aÿ©fù˜^=«?úœbÿšfÿ£`ÿ®n†A"Š3þžcÿ©fÿ¡_ÿ²qªX1p$
516ò‡Nÿ¢]ÿ›Uÿ¥b€9
517„*
518ì~Fÿ€aÿ™Uÿ§bÀd8àn;ÿŠbÿ˜Tÿ€aæ~IÕc1ÿžWÿ“KÿTÂ\.ÏZ+ÿ›UÿFÿ˜Oîz?& ×Q#ÿ–Tÿ•Oÿ˜RÿOO
519
520’7ÿGÿHÿ™Rí|@,
521«9ÿ•Vÿ eÿ bÿ‘R\
522 2õ}=ÿŽCÿ‹BÿGv/7ó‚Iÿž‰ÿŒ”ÿŠrl#
523‰#ú‰WÿÆ£ÿÀÿµƒ’7Hån8ÿ¡dÿ‘OÿŽC•:2ƒ)
5242ÅV,ÿ—ÿÀžÿœ‘³J"Ü_1ÿÁ™ÿ¿žÿ—ÉY-
525Ï]1ÿµ‡ÿ®‚ÿ§p¬E
526‰+ÿ—Zßn>çtCÿŒ•ÿœ›ÿşØi< ž9ÿ²†ÿÄ¢ÿÅ¡ë|L/ËR'ÿ°ÿ®‚ÿ¬w·J"7ÎS)ÿ»ÿÀ˜ÿŒ•ÿº˜ÿœ›ÿÊšàpCuý–gÿʪÿÇŠÿmcÖO$ÿ®~ÿ¬‚ÿ©u»I!©"ós>ÿ™ÿÈŠÿɪÿË®ÿÓžÿŜÆH"e
527ãl?ÿÌ«ÿƪÿ¶Œ1áV*ÿŘÿÝÿÀÂK$ Ã)×4æY.ó‰_ø€ù«ˆøžvçY.vÊBÿžÿÈ®ÿÆ£ÐS+Ç:Üa6Ù^6ã_4¥0Ê
528Í
529Ñ#Ñ&Õ ²Ž!þªÿÏ·ÿͰõyK8;
530+
531Œ óYÿÖÀÿϺÿŸxnB
532
533Y2
534?%P2Z7
535G+>ØP1ÿÔŸÿÑ¿ÿŸŸŠ)£W-û­iG׊uÝŽ9öĊŸZ¯%ÿêýÕÆÿкÙQ5B
536
537^{6ÿíÌ¥vVV%
538ÿଛkA‰
539þ°—ÿëàÿçØùsI™L5ÿåÂ跏;²{XÿéŒd/‹êgøÉ·õ°û£†”
540+ÐtWӏr=v/ÿêÂ̋_.£
541ÄÆ
542Ä
543
544œ84‘E2ÿáÁ÷­‡c}噊ÿãÒè‹q¢!–
545ä]RÄ3*— ÿÿÿÿÿÿÿþÿÿÿÿüÿÿÿÿüÿÿÿÿüÿÿÿÿþÿÿÿøÿÿÿðÿÿÿàÿÿÀ?ÿÿ€ÿÿ€ÿÿÿÿÿÿÿÿ€ÿþÀÿþÀÿþ@ÿÿ@
546ÿÿ`ÿ ÿ€ ÿ€ ÿ€ÿ€þþ€ü€ü€ø€ø
547€ø<€ø<€þ|€ÿÁþÆÿÿþ€ÿÿþ€ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ@ÿÿÿ@ÿÿÿ€pÿÿÿÿà?ÿÿÿÿàÿÿÿÿáÿ
548'
549
550
551
552
553
554Õt0ò©nè­|ç¬yç¬yç¬zì±~å—YB!
555Èh#ýəÿÿïÿüÙÿüÚÿüÙÿÿéÿÜ«a/
556åŒOÿóÑÿë»ÿçŽÿç³ÿñÄÿ庈I
557LÿÞ°ÿìÂÿâ®ÿã°ÿèžÿïÇše4
558n)ÿµzÿíÆÿÞ©ÿÞªÿà­ÿðÉގT]!1$
559ŽEԀHë£lýÍ¥ÿèÄÿÙ£ÿÙ£ÿØ¡ÿäºÿزùœ‰êªtێX¹h5|<-a) èŠMÿÒ¡ÿéÂÿé¿ÿß³ÿØ¥ÿ՞ÿ՞ÿ՝ÿÖ¡ÿÞ¯ÿåºÿèŸÿéÀÿå»ÿϞóždŸR!3w4üškÿæ¿ÿß³ÿҜÿЗÿЗÿИÿњÿњÿњÿљÿЗÿЗÿЗÿљÿÕ ÿÞ²ÿæ¿ÿשóš^†>
560Z$û¡cÿå¿ÿÕ¢ÿːÿ̔ÿ̔ÿ̒ÿ̓ÿ̒ÿ͕ÿ͕ÿ͕ÿΖÿ̓ÿ̓ÿ̑ÿ˒ÿːÿ͔ÿÙªÿåœÿÁŒ¿_*'
561Ùu:ÿÙ®ÿНÿĉÿǍÿŋÿǏÿÒ¡ÿ׬ÿÒ¢ÿƍÿnjÿƊÿϜÿÖ¬ÿÖšÿўÿȐÿŊÿƌÿŊÿȑÿܱÿОÕo5,j+
562ÿ²zÿÕ§ÿÀƒÿ‡ÿÁ…
563ÿǐÿÖªÿÁþ§qýÍ¢ÿǎÿÁ…
564ÿÀ„ÿʔýË¢úšvÿǖÿשÿΚÿÁ…
565ÿ†ÿÁ…
566ÿÀ„ÿÓ¥ÿ͜Êg1«S&ÿ͜ÿČÿŒÿœ€ÿ¿…
567ÿÓŠûŸf€GŠAÿ¶ƒÿʖÿ»ÿŒ€ÿÁ…
568ÿ˚Óf/•BìˆOÿœÿСÿ¿‚ÿœ€ÿŸÿ»~ÿÑ¡ÿŒšNÓs@ÿϝÿº|ÿ¹{ÿ·yÿɗÿ­x„3g% ø˜`ÿ˙ÿ·zÿ¹{ÿ¹zÿϝà†R 4Ùa)ÿ­zþϟÿ»}ÿž{ÿž{ÿ¹{ÿРÿ£if&
569+–:ãKÿőÿŽtÿ³uÿ¶wÿǔÚuBßt?ÿŒÿ·xÿ³uÿ³sÿČþšrY!
570+à^#ÿ©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ÿŸ…
571Âb4«@én7ÿº„ÿ±qÿªiÿ«iÿ¯nÿŸ‡Íg5É]-ÿŽ{ÿšgÿ¥cÿŠdÿ¶{ç{G%
572
573.ðIÿ¶|ÿŠdÿŠeÿŠdÿ·|ìƒN-
574‘3ÿ’Yÿ¶{ÿŠdÿŠeÿ¥cÿµzÿ•\R€?ÿ¢gÿ©hÿ \ÿŸ[ÿ¬mÿ—\e$
575Úa/ÿ­qÿ€bÿ¡^ÿ \ÿ¬kÿ™^d$
576Õ\*ÿ¬pÿ¥cÿ ]ÿŸ]ÿ§fÿ©mA
577v'
578ù…
579KÿšgÿšVÿ›Vÿ \ÿ¥fŠE°Bÿœ_ÿ¢aÿšWÿšWÿ¡]ÿ£dœA
580¢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
581ÿ“Qÿ˜Rÿ“Mÿ’Kÿ›UûDV u"
582Ù_.ÿœWÿ‘Iÿ‘IÿHÿ™Tõu<<ÚO!ý’Rÿ—Pÿ“Lÿ’Lÿ˜SÿMy+|'þ{=ÿ“Jÿ‹Bÿ‹AÿEÿŒF”5ÁF
583ÿ’Oÿ•Rÿ’Mÿ‘Mÿ–Qÿ„Cr$§6ù}@ÿ“KÿFÿŽHÿ‘JÿL;-
584ã\'ÿ”Nÿš[ÿŸeÿšrÿŠkÏS#Ž6þ…
585Kÿœ”ÿžÿµŠÿ¹ŽÿždŠ9]
586+îh/ÿFÿ‡?ÿ†<ÿˆ>ÿŒA¿J
587©7ÿcÿ¿˜ÿŒ–ÿ¿œÿŸ•øs:Ež*îh2ÿŒ’ÿÀžÿœ˜ÿÀœÿŽ‚ÔQ!
588:
589ÞW&ÿ€jÿ€nÿ—ZÿŽJÿ‹@ÑR#V PUý}Dÿ¿–ÿº•ÿ»–ÿÿ‘X‰& ÙJ
590ÿ«yÿáÿ»˜ÿŒ˜ÿŸ“ôm5GÊEÿ£mÿފÿ­€ÿª}ÿ€lá[')(ãS"üg+œ-
591wìf.ÿŒ‘ÿ»–ÿ»—ÿ¡ÿšuŒ=®.
592ÿ’\ÿÄ¢ÿœšÿŒ˜ÿÁžÿˆPy
593³8ÿšbÿ²‡ÿ«}ÿª|ÿ©vé`+5
594dÿs:ÿ³ÿ”[øq7ù‘]ÿŒ˜ÿ»—ÿœ™ÿ¡ÿµˆÓMŒ
595ùq;ÿÝÿÁŸÿœšÿ¡ÿ¡l¯3 µ4ÿ•\ÿ³‰ÿ«~ÿ©{ÿ©uíb,:
596±-
597ÿ‘Xÿœ˜ÿ»—ÿœ•ÿœ˜ÿº˜ÿŒšÿŸ›ÿãÿ»ØQ!:
598+äPÿ¹ŽÿÄŠÿ¿ÿáÿކÛL
599 ²/ÿ’Zÿމÿªÿ©{ÿštïb+?
600ZäNÿ¬~ÿž”ÿµÿ¹”ÿ¹—ÿ»™ÿœ›ÿœÿǪÿވÓDº1
601ÿ¢rÿÉ«ÿÀ¡ÿÁ€ÿÀšøi4L
602+µ.ÿ’Zÿތÿ«ÿ©~ÿ©wïa,>
603+³$
604+õ`&ÿ±ÿáÿÅ¥ÿÅ¥ÿÄŠÿÆ©ÿȬÿÎŽÿÒ³ÿˆP¬%’ÿ€JÿʬÿÀÿ€ÿƧÿ†P„Á0
605ÿšuÿϰÿÅ£ÿáÿÚðd0@º(Ø1åKõ{GüŠyÿ¿›ÿʬÿͰÿΰþŸ˜úƒOÝ7Z„ïZ'ÿÅ£ÿŪÿ€ÿÉ­ÿ¡ož,
606+è9ÿr8ÿ}IÿzFÿzEÿ{BôN
607G
608Ê#Ï#×. à@åO"çS&äN!ß:Ð%…
609
610”
611+Ô7
612ÿ³‡ÿ̲ÿÚÿÈ­ÿžàD(f wqrsvs !Ë
613Ê
614É
615 Ë
616Î
617Ž
618ÿ“aÿÒ»ÿÆ«ÿƬÿǧøb-Y •÷i9ÿÓ¹ÿËŽÿÆ®ÿÍ·ÿ…
619S$
620+ !
621!
622#$
623+eåBÿħÿÑÀÿɲÿκÿŠ}¿$y*
624ëˆIáŽMT!
625+> ߓYíšok8؎Rë¯r“X)Ç ÿš†ÿØÊÿË·ÿ̹ÿ¿£å>7x"ÿÀ‚û©g6
626+r0ÿà¯ÿä²h3%
627úœ„ÿb,™
628þƒ^ÿÜÌþΟþËžÿκûd<e7ÃI[!
629!ÖxDÿÿêñŽ„9f/ÿ̖ÿ՟w?xï\9ÿØÅûÓÅûÍŒýÔÂÿj:ÃV$ÿãÂÿðк\)¹e3ÿðÐÿ¹~M_Ý< þÒ¿ýßÔüÕÈüÚÌÿŒ¢Ï)"]øcÿóÚÿóÛä{C%PüµÿûâÐ~D!gÅ'
630ÿÏ·ÿïãþãÖýäÖÿäÐîa@jmÿœÿÒŽÕ].1#Ûp5ÿùßÿǔ„2
631+›žßO4ÛZBÛV>ÛV>ÛZ@Ý@š
632B
633+©.u-ÏX'ÿæÆÿæÆÅX"*
634³
635ÃŒœœœÄ²sævPÿòÚÿçÒðj5^€
636åfRÿ˶ÿÿøýͶßS+
637˜ü¹­þØÎæu^¿%
638–Œ
639+Ó$Õ
640œ
641\ No newline at end of file
642diff -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
643--- vendor/current/os2/psi_os2.rc 1970-01-01 01:00:00.000000000 +0100
644+++ trunk/os2/psi_os2.rc 2012-10-18 21:26:14.000000000 +0200
645@@ -0,0 +1 @@
646+ICON 1 DISCARDABLE "../os2/app.ico"
647diff -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
648--- vendor/current/os2/Readme.OS2 1970-01-01 01:00:00.000000000 +0100
649+++ trunk/os2/Readme.OS2 2014-04-30 15:55:22.000000000 +0200
650@@ -0,0 +1,231 @@
651+Psi 0.16-dev for OS/2 and eComStation
652+-------------------------------------
653+ This file contains information specific to the OS/2 - eComStation version of
654+ Psi. Before reading it, please refer to the README file that contains
655+ general information about Psi.
656+
657+
658+0. CONTENTS OF THIS FILE
659+========================
660+ 1. INTRODUCTION
661+ 2. REQUIREMENTS
662+ 3. INSTALLATION
663+ 4. CONFIGURATION DATA
664+ 5. KNOWN PROBLEMS
665+ 6. BUGREPORTS
666+ 7. CREDITS
667+ 8. SUPPORT AND DONATIONS
668+ 9. HISTORY
669+
670+
671+1. INTRODUCTION
672+===============
673+ Welcome to Psi version 0.16-dev for OS/2 and eComStation.
674+
675+
676+2. REQUIREMENTS
677+===============
678+ The following requirements can be installed either by rpm or by zip files
679+ except Extended System Tray widget which is currently available as zip only.
680+
681+
682+ RPM Installation (preferred):
683+ ============================
684+ klibc
685+ -----
686+ 1. yum install libc
687+
688+ GCC4Core
689+ --------
690+ 1. yum install libgcc4*
691+ 2. yum install libssp
692+ 3. yum install libstdc++6 libstdc++
693+ 4. yum install libsupc++6 libsupc++
694+
695+ Qt4 dll
696+ -------
697+ 1. yum install libqt4
698+
699+ Zlib
700+ ----
701+ 1. yum install zlib
702+
703+ openssl 1.0
704+ -----------
705+ 1. yum install openssl
706+
707+ pthread
708+ -------
709+ 1. yum install pthread
710+
711+
712+ ZIP Installation:
713+ =================
714+ klibc
715+ -----
716+ 1. Download klibc 0.6.5 or better (see http://svn.netlabs.org/libc for
717+ more information)
718+ 2. Install the files to your libpath eg x:\ecs\dll
719+
720+ GCC4Core
721+ --------
722+ 1. Download GCC4Core 1.2.2 or better from ftp://ftp.netlabs.org/pub/gcc
723+ 2. Install the files to your libpath eg. x:\ecs\dll
724+
725+ Qtcore4
726+ -------
727+ 1. Download Qt4 4.7.3 or better (see http://svn.netlabs.org/qt4 for more
728+ information). 'Qt Runtime Libraries and Plugins' is sufficient.
729+ 2. Install the files according to the readme
730+
731+ Zlib
732+ ----
733+ 1. Download zlib from f.i. http://rpm.netlabs.org/release/00/zip/
734+ 2. Unpack and install z.dll to your libpath eg. x:\ecs\dll
735+
736+ openssl 1.0
737+ -----------
738+ 1. Download openssl from f.i. http://rpm.netlabs.org/release/00/zip
739+ 2. Unpack and install the dll to your libpath eg. x:\ecs\dll
740+
741+ pthread
742+ -------
743+ 1. Download pthread from f.i. http://rpm.netlabs.org/release/00/zip
744+ 2. Unpack and install the dll to your libpath eg. x:\ecs\dll
745+
746+ Extended System Tray
747+ --------------------
748+ 1. ExtendedSysTray widget for xCenter/eCenter. Not strictly required
749+ but strongly recommended. Get it from here if you do not have it
750+ installed already - ftp://ftp.netlabs.org/pub/qt4/xsystray/
751+
752+
753+3. INSTALLATION
754+===============
755+ 1. Unzip the Psi archive containing this file to a directory of your
756+ choice and run the Psi executable (psi.exe).
757+
758+ 2. Additionally, you can download a Language Pack for your language using
759+ the following link: http://psi-im.org/download. Copy the language file
760+ (f.i. psi_de.qm) into the directory of psi.exe. You need to restart Psi to
761+ load the language file.
762+
763+ 3. If you want to use the 'PM Default Browser/Mail' setting to open links
764+ within chat windows, make sure that you have the default PM browser and
765+ mail client applications set up correctly. The easiest way to do this is
766+ to use the 'Configure Internet Applications' tool from Hobbes
767+ (http://hobbes.nmsu.edu/pub/os2/apps/misc/configapps1_1_1.zip).
768+
769+ Please refer to the 'Known Problems' section below for additional information
770+ on how to resolve problems you may encounter when running Psi for OS/2.
771+
772+ Upgrading a previous version
773+ ----------------------------
774+ If you are upgrading from a previous version of Psi, please always use a clean
775+ directory to install the new version to avoid possible file conflicts. Psi 0.16-dev
776+ uses a new profile data format. Starting Psi 0.16-dev the first time will migrate
777+ your current Psi settings. If you ever want to import the settings of the
778+ older version afterwards again delete the Psi 0.16-dev configuration data trees and
779+ start Psi again. See section 'Configuration Data' for details.
780+
781+ Please note that installing a new version to a clean directory will not affect
782+ your existing personal configuration data (Psi profiles, account settings,
783+ message history) because it is stored in a separate directory and therefore
784+ will be preserved.
785+
786+
787+4. CONFIGURATION DATA
788+=====================
789+ Psi 0.16-dev stores all configuration files (such as Psi profiles, account settings,
790+ message history, etc.) in subdirectories of your home directory (pointed to by
791+ the HOME environment variable). Path to home directory is usually set in your
792+ config.sys (SET HOME=xxxxx). You can check your current home setting by entering
793+ 'echo %home%' in a command line window. Note that if the HOME variable is
794+ invalid or points to a non-existing location, the .config, .local and .cache
795+ subdirectories will be created in the root directory of the boot drive!
796+
797+ Standard eCS installation sets home to x:\home\default. Psi 0.16-dev configuration
798+ is stored in following directories then -
799+ x:\home\default\.local\share\psi
800+ x:\home\default\.config\psi
801+ x:\home\default\.cache\psi
802+
803+ The paths and parameters to the default PM browser and mail client applications
804+ are taken from the HINI_USER_PROFILE\WPURLDEFAULTSETTINGS registry key (stored
805+ in the X:\OS2\OS2.INI file).
806+
807+
808+5. KNOWN PROBLEMS
809+=================
810+ 1. If you have a single-streamed sound card (a card that cannot play
811+ more than one sound at a time) and experience problems with sound
812+ in Psi (such as 100% CPU load when playing too many sounds
813+ simultaneously), try to add the following line to CONFIG.SYS
814+ (or to the .CMD script that starts Psi):
815+
816+ SET QT_PM_NO_SOUND_SHARE=YES
817+
818+ This will tell the Qt library to open sound devices in the
819+ exclusive mode.
820+
821+ 2. The exit button of the Psi window does not close Psi completely but
822+ minimizes Psi as this is the usual behaviour on other platforms.
823+ Unfortunately Psi is not shown in the Window List. To completely close Psi
824+ right button click (RBC) on the Psi symbol in the Extendeded System Tray
825+ xcenter widget. If you have not installed ExtendedSysTray or in case RBC do
826+ not work (f.i. your profile data is not complete) use TOP or KILL or another
827+ process kill utility to exit psi.exe.
828+
829+
830+6. BUGREPORTS
831+=============
832+ Please create bugreports at http://svn.netlabs.org/qtapps
833+ Only bug reports with a reproducable bug are accepted.
834+
835+
836+7. CREDITS
837+==========
838+ The port was done by Silvan Scherrer aka _diver
839+ Thanks go to Dmitriy Kuminov for all his coding work for eCS
840+ Special thanks of course go to the Psi developers - see
841+ http://psi-im.org/about/
842+
843+
844+8. SUPPORT AND DONATIONS
845+========================
846+ Psi port is based on volunteer work. If you would like to support further
847+ development, you can do so in one of the following ways:
848+ * Donate to the Qt4 project: see qt.netlabs.org for more information
849+ * Contribute to the project: Besides actual development, this also includes
850+ maintaining the documentation and the project web site as well as help for
851+ users.
852+
853+
854+9. HISTORY
855+==========
856+
857+ 2014-04-23 (Happy birthday Jason)
858+ * updated to latest 0.16-dev sources
859+
860+ 2014-02-18
861+ * updated to latest 0.16-dev sources
862+
863+ 2013-12-06
864+ * updated to latest 0.16-dev sources
865+
866+ 2013-08-23
867+ * updated to latest 0.16-dev sources
868+
869+ 2013-02-22
870+ * repacked with iconsets
871+
872+ 2012-10-26
873+ * first official Psi 0.15 port
874+
875+ 2006-09-26
876+ * official Psi 0.10.1 port
877+
878+ For general Psi history see README
879+
880+
881+2012-10-29 Andreas Buchinger
882diff -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
883--- vendor/current/psi.pro 2014-04-17 19:28:52.000000000 +0200
884+++ trunk/psi.pro 2014-04-23 11:24:28.000000000 +0200
885@@ -5,6 +5,7 @@
886 # configure iris
887 unix:system("echo \"include(../src/conf_iris.pri)\" > iris/conf.pri")
888 windows:system("echo include(../src/conf_iris.pri) > iris\\conf.pri")
889+os2:system("echo include(../src/conf_iris.pri) > iris/conf.pri")
890
891 sub_iris.subdir = iris
892 sub_src.subdir = src
893diff -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/qcm/qjdns.qcm trunk/qcm/qjdns.qcm
894--- vendor/current/qcm/qjdns.qcm 2014-04-17 19:28:52.000000000 +0200
895+++ trunk/qcm/qjdns.qcm 2014-04-23 11:26:10.000000000 +0200
896@@ -17,8 +17,8 @@
897 QString shortname() const { return "qjdns"; }
898 bool exec()
899 {
900-#if defined Q_OS_WIN || defined Q_OS_MAC
901- // HACK: on Windows and Mac OS X, always use psi's bundled qjdns
902+#if defined Q_OS_WIN || defined Q_OS_MAC || defined Q_OS_OS2
903+ // HACK: on Windows, OS/2 and Mac OS X, always use psi's bundled qjdns
904 conf->addExtra("CONFIG += iris-qjdns");
905 return true;
906 #else
907diff -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
908--- vendor/current/src/aboutdlg.cpp 2012-10-04 02:53:02.000000000 +0200
909+++ trunk/src/aboutdlg.cpp 2013-12-05 14:28:04.000000000 +0100
910@@ -24,6 +24,7 @@
911
912 #include "applicationinfo.h"
913 #include "aboutdlg.h"
914+#include "systeminfo.h"
915
916 AboutDlg::AboutDlg(QWidget* parent)
917 : QDialog(parent)
918@@ -33,7 +34,7 @@
919
920 setModal(false);
921
922- ui_.lb_name->setText ( QString("<h3><b>%1 v%2</b></h3>").arg(ApplicationInfo::name()).arg(ApplicationInfo::version()) );
923+ ui_.lb_name->setText ( QString("<h3><b>%1 v%2 on %3</b></h3>").arg(ApplicationInfo::name()).arg(ApplicationInfo::version()).arg(SystemInfo::instance()->os()) );
924
925 ui_.te_license->setText ( loadText(":/COPYING") );
926
927diff -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
928--- vendor/current/src/applicationinfo.cpp 2013-12-03 18:34:22.000000000 +0100
929+++ trunk/src/applicationinfo.cpp 2013-12-05 14:03:02.000000000 +0100
930@@ -143,7 +143,7 @@
931 {
932 #if defined(HAVE_X11)
933 return PSI_DATADIR;
934-#elif defined(Q_OS_WIN)
935+#elif defined(Q_OS_WIN) || defined(Q_OS_OS2)
936 return qApp->applicationDirPath();
937 #elif defined(Q_OS_MAC)
938 // FIXME: Clean this up (remko)
939@@ -238,7 +238,7 @@
940 QDir configDir(QDir::homePath() + "/Library/Application Support/" + name());
941 QDir cacheDir(QDir::homePath() + "/Library/Caches/" + name());
942 QDir dataDir(configDir);
943-#elif defined HAVE_X11
944+#elif defined HAVE_X11 || defined(Q_OS_OS2)
945 QString XdgConfigHome = QString::fromLocal8Bit(getenv("XDG_CONFIG_HOME"));
946 QString XdgDataHome = QString::fromLocal8Bit(getenv("XDG_DATA_HOME"));
947 QString XdgCacheHome = QString::fromLocal8Bit(getenv("XDG_CACHE_HOME"));
948diff -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
949--- vendor/current/src/common.cpp 2013-12-03 18:34:22.000000000 +0100
950+++ trunk/src/common.cpp 2013-12-05 13:34:34.000000000 +0100
951@@ -283,7 +283,7 @@
952 return;
953 }
954
955-#if defined(Q_OS_WIN) || defined(Q_OS_MAC)
956+#if defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(Q_OS_OS2)
957 QSound::play(str);
958 #else
959 QString player = PsiOptions::instance()->getOption("options.ui.notifications.sounds.unix-sound-player").toString();
960diff -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
961--- vendor/current/src/config.h 1970-01-01 01:00:00.000000000 +0100
962+++ trunk/src/config.h 2014-04-23 12:06:30.000000000 +0200
963@@ -0,0 +1,3 @@
964+#define PSI_LIBDIR "/usr/local/lib/psi"
965+#define PSI_DATADIR "/usr/local/share/psi"
966+#define PSI_VERSION "0.16-dev-20140423"
967diff -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
968--- vendor/current/src/homedirmigration.cpp 2013-08-22 16:52:32.000000000 +0200
969+++ trunk/src/homedirmigration.cpp 2013-08-23 10:14:42.000000000 +0200
970@@ -165,7 +165,7 @@
971
972 QString dstDirName;
973 QRegExp settingsXp("^/psirc$|^/profiles/\\w*/accounts.xml$|^/profiles/\\w*/accounts.xml.backup$|"
974- "^/profiles/\\w*/options.xml$|^/profiles/\\w*/options.xml.backup$|^/profiles/\\w*/mucskipautojoin.txt$");
975+ "^/profiles/\\w*/options.xml$|^/profiles/\\w*/options.xml.backup$|^/profiles/\\w*/config.xml$|^/profiles/\\w*/mucskipautojoin.txt$");
976
977 QRegExp cacheXp("^/tmp-contentdownloader/.*$|^/tmp-sounds/.*$|^/tmp-pics/.*$|"
978 "^/bob/.*|^/avatars/.*$|^/profiles/\\w*/vcard/.*$|^/caps.xml$|^/tune$");
979@@ -256,6 +256,9 @@
980 base = QDir::cleanPath(base);
981
982 oldHomeDir_.setPath(base + "/PsiData");
983+#elif defined Q_OS_OS2
984+ QString base = QDir::homePath();
985+ oldHomeDir_.setPath(base + "/PsiData");
986 #endif
987 return oldHomeDir_.exists();
988 }
989diff -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
990--- vendor/current/src/libpsi/tools/globalshortcut/globalshortcut.pri 2013-12-03 19:04:12.000000000 +0100
991+++ trunk/src/libpsi/tools/globalshortcut/globalshortcut.pri 2013-12-05 14:05:14.000000000 +0100
992@@ -16,3 +16,6 @@
993 HEADERS += \
994 $$PWD/NDKeyboardLayout.h
995 }
996+os2: {
997+ SOURCES += $$PWD/globalshortcutmanager_pm.cpp
998+}
999diff -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
1000--- vendor/current/src/libpsi/tools/globalshortcut/globalshortcutmanager_pm.cpp 1970-01-01 01:00:00.000000000 +0100
1001+++ trunk/src/libpsi/tools/globalshortcut/globalshortcutmanager_pm.cpp 2012-10-18 15:08:06.000000000 +0200
1002@@ -0,0 +1,63 @@
1003+/*
1004+ * globalshortcutmanager_pm.cpp - PM implementation of global shortcuts
1005+ * Copyright (C) 2003-2006 Justin Karneges, Maciej Niedzielski
1006+ *
1007+ * This program is free software; you can redistribute it and/or
1008+ * modify it under the terms of the GNU General Public License
1009+ * as published by the Free Software Foundation; either version 2
1010+ * of the License, or (at your option) any later version.
1011+ *
1012+ * This program is distributed in the hope that it will be useful,
1013+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1014+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1015+ * GNU General Public License for more details.
1016+ *
1017+ * You should have received a copy of the GNU General Public License
1018+ * along with this library; if not, write to the Free Software
1019+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1020+ *
1021+ */
1022+
1023+/****** @todo this is heavily needed so do it once */
1024+
1025+#include "globalshortcutmanager.h"
1026+#include "globalshortcuttrigger.h"
1027+
1028+#include <QWidget>
1029+
1030+class GlobalShortcutManager::KeyTrigger::Impl : public QWidget
1031+{
1032+public:
1033+ /**
1034+ * Constructor registers the hotkey.
1035+ */
1036+ Impl(GlobalShortcutManager::KeyTrigger* t, const QKeySequence& ks)
1037+ {
1038+ }
1039+
1040+ /**
1041+ * Destructor unregisters the hotkey.
1042+ */
1043+ ~Impl()
1044+ {
1045+ }
1046+
1047+ /**
1048+ * Triggers triggered() signal when the hotkey is activated.
1049+ */
1050+
1051+private:
1052+
1053+};
1054+
1055+
1056+GlobalShortcutManager::KeyTrigger::KeyTrigger(const QKeySequence& key)
1057+{
1058+ d = new Impl(this, key);
1059+}
1060+
1061+GlobalShortcutManager::KeyTrigger::~KeyTrigger()
1062+{
1063+ delete d;
1064+ d = 0;
1065+}
1066diff -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
1067--- vendor/current/src/libpsi/tools/idle/idle.pri 2012-10-04 02:53:12.000000000 +0200
1068+++ trunk/src/libpsi/tools/idle/idle.pri 2012-10-18 14:31:18.000000000 +0200
1069@@ -11,3 +11,6 @@
1070 mac: {
1071 SOURCES += $$PWD/idle_mac.cpp
1072 }
1073+os2 {
1074+ SOURCES += $$PWD/idle_x11.cpp
1075+}
1076diff -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
1077--- vendor/current/src/libpsi/tools/simplecli/simplecli.cpp 2013-08-22 16:54:16.000000000 +0200
1078+++ trunk/src/libpsi/tools/simplecli/simplecli.cpp 2013-12-05 14:24:28.000000000 +0100
1079@@ -84,7 +84,7 @@
1080 */
1081 QHash<QByteArray, QByteArray> SimpleCli::parse(int argc, char* argv[], const QList<QByteArray>& terminalArgs, int* safeArgc)
1082 {
1083-#ifdef Q_OS_WIN
1084+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
1085 const bool winmode = true;
1086 #else
1087 const bool winmode = false;
1088diff -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
1089--- vendor/current/src/libpsi/tools/spellchecker/aspellchecker.cpp 2013-08-22 16:54:16.000000000 +0200
1090+++ trunk/src/libpsi/tools/spellchecker/aspellchecker.cpp 2013-12-05 14:25:08.000000000 +0100
1091@@ -38,7 +38,7 @@
1092 speller_ = NULL;
1093 config_ = new_aspell_config();
1094 aspell_config_replace(config_, "encoding", "utf-8");
1095-#ifdef Q_OS_WIN
1096+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
1097 aspell_config_replace(config_, "conf-dir", QDir::homePath().toLocal8Bit().data());
1098 aspell_config_replace(config_, "data-dir", QString("%1/aspell").arg(QCoreApplication::applicationDirPath()).toLocal8Bit().data());
1099 aspell_config_replace(config_, "dict-dir", QString("%1/aspell").arg(QCoreApplication::applicationDirPath()).toLocal8Bit().data());
1100diff -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
1101--- vendor/current/src/libpsi/tools/systemwatch/systemwatch.pri 2012-10-04 02:53:12.000000000 +0200
1102+++ trunk/src/libpsi/tools/systemwatch/systemwatch.pri 2013-08-23 10:33:04.000000000 +0200
1103@@ -14,3 +14,7 @@
1104 HEADERS += $$PWD/systemwatch_mac.h
1105 SOURCES += $$PWD/systemwatch_mac.cpp
1106 }
1107+os2 {
1108+ HEADERS += $$PWD/systemwatch_unix.h
1109+ SOURCES += $$PWD/systemwatch_unix.cpp
1110+}
1111diff -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
1112--- vendor/current/src/main.cpp 2013-08-22 16:52:32.000000000 +0200
1113+++ trunk/src/main.cpp 2013-08-23 10:46:06.000000000 +0200
1114@@ -484,7 +484,7 @@
1115 QByteArray val = qgetenv("QT_PLUGIN_PATH");
1116 if(!val.isEmpty())
1117 {
1118-#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
1119+#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_OS_OS2)
1120 QLatin1Char pathSep(';');
1121 #else
1122 QLatin1Char pathSep(':');
1123diff -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
1124--- vendor/current/src/options/opt_sound.cpp 2013-08-22 16:52:32.000000000 +0200
1125+++ trunk/src/options/opt_sound.cpp 2013-08-23 11:01:08.000000000 +0200
1126@@ -170,6 +170,8 @@
1127 d->le_player->setText(tr("Windows Sound"));
1128 #elif defined(Q_OS_MAC)
1129 d->le_player->setText(tr("Mac OS Sound"));
1130+#elif defined(Q_OS_OS2)
1131+ d->le_player->setText(tr("eComStation(OS/2) Sound"));
1132 #else
1133 d->le_player->setText( PsiOptions::instance()->getOption("options.ui.notifications.sounds.unix-sound-player").toString() );
1134 #endif
1135diff -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
1136--- vendor/current/src/src.pri 2013-12-03 18:34:22.000000000 +0100
1137+++ trunk/src/src.pri 2013-12-05 14:09:30.000000000 +0100
1138@@ -602,6 +602,10 @@
1139 SOURCES += $$PWD/activeprofiles_stub.cpp
1140 }
1141
1142+os2 {
1143+ SOURCES += $$PWD/activeprofiles_stub.cpp
1144+}
1145+
1146 webkit {
1147 HEADERS += $$PWD/chatview_webkit.h \
1148 $$PWD/networkaccessmanager.h \
1149diff -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
1150--- vendor/current/src/src.pro 2013-08-22 16:52:34.000000000 +0200
1151+++ trunk/src/src.pro 2013-08-23 11:41:48.000000000 +0200
1152@@ -151,6 +151,9 @@
1153 # buggy MSVC workaround
1154 win32-msvc|win32-msvc.net|win32-msvc2005: QMAKE_LFLAGS += /FORCE:MULTIPLE
1155 }
1156+os2 {
1157+ RC_FILE = ../os2/psi_os2.rc
1158+}
1159 mac {
1160 # Universal binaries
1161 qc_universal:contains(QT_CONFIG,x86):contains(QT_CONFIG,x86_64) {
1162diff -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
1163--- vendor/current/src/systeminfo.cpp 2013-12-03 18:34:22.000000000 +0100
1164+++ trunk/src/systeminfo.cpp 2013-12-06 14:53:42.000000000 +0100
1165@@ -171,14 +171,14 @@
1166 os_str_ = "Unknown";
1167
1168 // Detect
1169-#if defined(HAVE_X11) || defined(Q_OS_MAC)
1170+#if defined(HAVE_X11) || defined(Q_OS_MAC) || defined(Q_OS_OS2)
1171 time_t x;
1172 time(&x);
1173- char str[256];
1174+ char str[256] = "\0";
1175 char fmt[32];
1176 strcpy(fmt, "%z");
1177 strftime(str, 256, fmt, localtime(&x));
1178- if(strcmp(fmt, str)) {
1179+ if(*str && strcmp(fmt, str)) {
1180 QString s = str;
1181 if(s.at(0) == '+')
1182 s.remove(0,1);
1183@@ -187,7 +187,7 @@
1184 }
1185 strcpy(fmt, "%Z");
1186 strftime(str, 256, fmt, localtime(&x));
1187- if(strcmp(fmt, str))
1188+ if(*str && strcmp(fmt, str))
1189 timezone_str_ = str;
1190 #endif
1191 #if defined(HAVE_X11)
1192@@ -225,6 +225,57 @@
1193 default:
1194 os_str_ = "Mac OS X";
1195 }
1196+#elif defined(Q_OS_OS2)
1197+ QSysInfo::Os2Version v = QSysInfo::os2Version();
1198+ switch(v) {
1199+ case QSysInfo::OV_Unknown:
1200+ os_str_ = "Unknown";
1201+ break;
1202+ case QSysInfo::OV_2_0:
1203+ os_str_ = "OS/2 2.0";
1204+ break;
1205+ case QSysInfo::OV_2_1:
1206+ os_str_ = "OS/2 2.1";
1207+ break;
1208+ case QSysInfo::OV_2_11:
1209+ os_str_ = "OS/2 2.11";
1210+ break;
1211+ case QSysInfo::OV_3_0:
1212+ os_str_ = "OS/2 Warp 3";
1213+ break;
1214+ case QSysInfo::OV_4_0:
1215+ os_str_ = "OS/2 Warp 4";
1216+ break;
1217+ case QSysInfo::OV_4_5:
1218+ os_str_ = "OS/2 Warp 4.5";
1219+ break;
1220+ case QSysInfo::OV_4_52:
1221+ os_str_ = "OS/2 Warp 4.52";
1222+ break;
1223+ case QSysInfo::OV_ECS_Unknown:
1224+ os_str_ = "eComStation";
1225+ break;
1226+ case QSysInfo::OV_ECS_1_0:
1227+ os_str_ = "eComStation 1.0";
1228+ break;
1229+ case QSysInfo::OV_ECS_1_1:
1230+ os_str_ = "eComStation 1.1";
1231+ break;
1232+ case QSysInfo::OV_ECS_1_2:
1233+ os_str_ = "eComStation 1.2";
1234+ break;
1235+ case QSysInfo::OV_ECS_2_0:
1236+ os_str_ = "eComStation 2.0";
1237+ break;
1238+ case QSysInfo::OV_ECS_2_1:
1239+ os_str_ = "eComStation 2.1";
1240+ break;
1241+ case QSysInfo::OV_ECS_2_2:
1242+ os_str_ = "eComStation 2.2";
1243+ break;
1244+ default:
1245+ os_str_ = "eComstation";
1246+ }
1247 #endif
1248
1249 #if defined(Q_OS_WIN)
1250diff -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
1251--- vendor/current/src/textutil.cpp 2014-02-18 11:42:48.000000000 +0100
1252+++ trunk/src/textutil.cpp 2014-02-18 12:22:34.000000000 +0100
1253@@ -87,7 +87,7 @@
1254 int col = 0;
1255
1256 for(int i = 0; i < (int)plain.length(); ++i) {
1257-#ifdef Q_OS_WIN
1258+#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
1259 if(plain[i] == '\r' && i+1 < (int)plain.length() && plain[i+1] == '\n')
1260 ++i; // Qt/Win sees \r\n as two new line chars
1261 #endif
1262diff -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
1263--- vendor/current/src/webview.cpp 2013-12-03 18:34:22.000000000 +0100
1264+++ trunk/src/webview.cpp 2014-02-19 16:26:34.000000000 +0100
1265@@ -141,8 +141,11 @@
1266
1267 QDrag *drag = new QDrag(this);
1268 QMimeData *mimeData = new QMimeData;
1269-
1270+#ifdef __OS2__ // remove with qt 4.8 or better
1271+ QString html = selectedHtml();
1272+#else
1273 QString html = TextUtil::img2title(selectedHtml());
1274+#endif
1275 mimeData->setHtml(html);
1276 mimeData->setText(TextUtil::rich2plain(html));
1277
1278@@ -153,7 +156,11 @@
1279 void WebView::convertClipboardHtmlImages(QClipboard::Mode mode)
1280 {
1281 QClipboard *cb = QApplication::clipboard();
1282+#ifdef __OS2__ // remove with qt 4.8 or better
1283+ QString html = TextUtil::img2title(cb->mimeData(mode)->html());
1284+#else
1285 QString html = TextUtil::img2title(selectedHtml());
1286+#endif
1287 QMimeData *data = new QMimeData;
1288 data->setHtml(html);
1289 data->setText(TextUtil::rich2plain(html, false));
1290@@ -166,6 +173,22 @@
1291 page()->mainFrame()->evaluateJavaScript(scriptSource);
1292 }
1293
1294+#ifdef Q_OS_OS2
1295+QString WebView::selectedHtml()
1296+{
1297+ // WARNING: this hack needs to be removed when we have Qt 4.8
1298+ QClipboard *clipboard = QApplication::clipboard();
1299+ QMimeData *originalData = new QMimeData;
1300+ foreach (QString format, clipboard->mimeData(QClipboard::Clipboard)->formats()) {
1301+ originalData->setData(format, clipboard->mimeData(QClipboard::Clipboard)->data(format));
1302+ }
1303+ copySelected();
1304+ QString html = clipboard->mimeData()->html();
1305+ clipboard->setMimeData(originalData);
1306+ return html;
1307+}
1308+#endif
1309+
1310 QString WebView::selectedText()
1311 {
1312 return TextUtil::rich2plain(TextUtil::img2title(selectedHtml()));
1313diff -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
1314--- vendor/current/src/webview.h 2013-12-03 18:34:22.000000000 +0100
1315+++ trunk/src/webview.h 2013-12-06 17:12:04.000000000 +0100
1316@@ -78,6 +78,9 @@
1317 /** Evaluates JavaScript code */
1318 void evaluateJS(const QString &scriptSource = "");
1319
1320+#ifdef Q_OS_OS2
1321+ QString selectedHtml();
1322+#endif
1323 QString selectedText();
1324 bool isLoading() { return isLoading_; }
1325
Note: See TracBrowser for help on using the repository browser.