source: diffs/psi_0.16.diff@ 183

Last change on this file since 183 was 172, checked in by Silvan Scherrer, 10 years ago

psi: latest diff

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