im.pidgin.pidgin: d5db81013385c7da0d1ef09cc2ea31293df711ce
sadrul at pidgin.im
sadrul at pidgin.im
Wed Oct 3 10:40:45 EDT 2007
revision: d5db81013385c7da0d1ef09cc2ea31293df711ce
date: 2007-10-03T14:42:00
author: sadrul at pidgin.im
branch: im.pidgin.pidgin
changelog:
merge of '43311ea3963dadd958af56847cc36df60507673f'
and '530c4f758bc1775758210bea1aa6273313d95b6d'
manifest:
format_version "1"
new_manifest [3415b8d9a2b632a5d85e37c08e8784c192ffad4f]
old_revision [43311ea3963dadd958af56847cc36df60507673f]
add_dir "pidgin/pixmaps/toolbar/11"
add_file "libpurple/protocols/bonjour/dns_sd_proxy.c"
content [5199882594a26f949814387e509c1766c0f67dd4]
add_file "pidgin/pixmaps/status/11/log-in.png"
content [0be4a0be280cce09c33ae144538a098abfe260ab]
add_file "pidgin/pixmaps/status/11/log-out.png"
content [e201025bec5d6e617f6803194d47bcf687b9adc7]
add_file "pidgin/pixmaps/toolbar/11/message-new.png"
content [e38d4bfbcfc15be6bf236e0590521a0bae7de169]
add_file "share/ca-certs/Microsoft_Secure_Server_Authority.pem"
content [e1a29b84c3814767aa6bfc86f534fc7cdd70bbe6]
patch "INSTALL"
from [5b39563912c3e0289a4ea052735e1566b07c513f]
to [4d53acadb9c90878fb040a49a257a55d13baf6f7]
patch "libpurple/certificate.c"
from [e92bb3478e85c939e696305a5286afb1b4069c19]
to [950f284fa04c1cf3515cf50503deb9d55f8fd59e]
patch "libpurple/protocols/bonjour/Makefile.am"
from [90d47f9af47c6f91ae2437b6776523064549ca32]
to [66528f8cacc25d2764e00f74003ed1fa14e095da]
patch "libpurple/protocols/bonjour/Makefile.mingw"
from [d854d40f013c09f8f07c4674c9905b77d6b750b3]
to [68142a3871b3bcb2be7229170c4bc8ea4fd13943]
patch "libpurple/protocols/bonjour/bonjour.c"
from [4bf190ec74fffd44c858abfabab31e1cd8cbfa18]
to [64780fa8de009d3f0535aae3bc3d10505be400da]
patch "libpurple/protocols/bonjour/dns_sd_proxy.h"
from [5c8bb1f2d994ebfb1554d95a18b59601a1f06e4b]
to [51e3eb25f562cfbd2a9609ce2511f8a2dedee880]
patch "libpurple/protocols/bonjour/mdns_win32.c"
from [03e5cd92236058b8970463c7932950f7a356c058]
to [aeba928ec9fa711f19c2bfbbee52b2ca9c1469c1]
patch "libpurple/protocols/gg/buddylist.c"
from [aa1eb8a29f943a90c6fb14c0f6934123fc6b8730]
to [353535de7d31ded3a69e0486d86d6d22604f31e6]
patch "libpurple/protocols/msn/soap.c"
from [b4246c343cc7a5051c673f14257ab0918a4db156]
to [8a27072e32a3cb6052fcaafc1dcd0d1abb6b65d7]
patch "pidgin/pidginstock.c"
from [a1a460cffd8fa050434e5402f4800f561f2528c5]
to [2c265aa9d5a211ec43e10e414febf9937bb03420]
patch "pidgin/pixmaps/status/11/Makefile.am"
from [9a19ff6d6fcc1bb1b406d6407a095322e30e8c8b]
to [206419b4c8fd3cec428f705dab89a09c27326636]
patch "pidgin/pixmaps/toolbar/Makefile.am"
from [497746a6a16a636054c83cdb0f459206aa1ad609]
to [c5081b872303b49b303ca69d9ae94176f98e00e1]
patch "pidgin/win32/nsis/pixmaps/pidgin-intro.bmp"
from [743fe3b36d453397c445fe08ea301f9163b07923]
to [a286d035366a6522fa166cc53fcbfbaa2f2de370]
patch "share/ca-certs/Makefile.am"
from [6fdd6599e29bf50e32832da473dbfea86f59cde8]
to [d33109c71b83ea1f09f3df5b78fcbdb6ebe94232]
set "pidgin/pixmaps/status/11/log-in.png"
attr "mtn:manual_merge"
value "true"
set "pidgin/pixmaps/status/11/log-out.png"
attr "mtn:manual_merge"
value "true"
set "pidgin/pixmaps/toolbar/11/message-new.png"
attr "mtn:manual_merge"
value "true"
old_revision [530c4f758bc1775758210bea1aa6273313d95b6d]
patch "finch/libgnt/gntmain.c"
from [681d2e87ecf9a093e70f4c6a7dba4c345a0a5e07]
to [7ddfbc8f64142c8b3f27e408710c3e096e961fdd]
-------------- next part --------------
#
#
# add_dir "pidgin/pixmaps/toolbar/11"
#
# add_file "libpurple/protocols/bonjour/dns_sd_proxy.c"
# content [5199882594a26f949814387e509c1766c0f67dd4]
#
# add_file "pidgin/pixmaps/status/11/log-in.png"
# content [0be4a0be280cce09c33ae144538a098abfe260ab]
#
# add_file "pidgin/pixmaps/status/11/log-out.png"
# content [e201025bec5d6e617f6803194d47bcf687b9adc7]
#
# add_file "pidgin/pixmaps/toolbar/11/message-new.png"
# content [e38d4bfbcfc15be6bf236e0590521a0bae7de169]
#
# add_file "share/ca-certs/Microsoft_Secure_Server_Authority.pem"
# content [e1a29b84c3814767aa6bfc86f534fc7cdd70bbe6]
#
# patch "INSTALL"
# from [5b39563912c3e0289a4ea052735e1566b07c513f]
# to [4d53acadb9c90878fb040a49a257a55d13baf6f7]
#
# patch "libpurple/certificate.c"
# from [e92bb3478e85c939e696305a5286afb1b4069c19]
# to [950f284fa04c1cf3515cf50503deb9d55f8fd59e]
#
# patch "libpurple/protocols/bonjour/Makefile.am"
# from [90d47f9af47c6f91ae2437b6776523064549ca32]
# to [66528f8cacc25d2764e00f74003ed1fa14e095da]
#
# patch "libpurple/protocols/bonjour/Makefile.mingw"
# from [d854d40f013c09f8f07c4674c9905b77d6b750b3]
# to [68142a3871b3bcb2be7229170c4bc8ea4fd13943]
#
# patch "libpurple/protocols/bonjour/bonjour.c"
# from [4bf190ec74fffd44c858abfabab31e1cd8cbfa18]
# to [64780fa8de009d3f0535aae3bc3d10505be400da]
#
# patch "libpurple/protocols/bonjour/dns_sd_proxy.h"
# from [5c8bb1f2d994ebfb1554d95a18b59601a1f06e4b]
# to [51e3eb25f562cfbd2a9609ce2511f8a2dedee880]
#
# patch "libpurple/protocols/bonjour/mdns_win32.c"
# from [03e5cd92236058b8970463c7932950f7a356c058]
# to [aeba928ec9fa711f19c2bfbbee52b2ca9c1469c1]
#
# patch "libpurple/protocols/gg/buddylist.c"
# from [aa1eb8a29f943a90c6fb14c0f6934123fc6b8730]
# to [353535de7d31ded3a69e0486d86d6d22604f31e6]
#
# patch "libpurple/protocols/msn/soap.c"
# from [b4246c343cc7a5051c673f14257ab0918a4db156]
# to [8a27072e32a3cb6052fcaafc1dcd0d1abb6b65d7]
#
# patch "pidgin/pidginstock.c"
# from [a1a460cffd8fa050434e5402f4800f561f2528c5]
# to [2c265aa9d5a211ec43e10e414febf9937bb03420]
#
# patch "pidgin/pixmaps/status/11/Makefile.am"
# from [9a19ff6d6fcc1bb1b406d6407a095322e30e8c8b]
# to [206419b4c8fd3cec428f705dab89a09c27326636]
#
# patch "pidgin/pixmaps/toolbar/Makefile.am"
# from [497746a6a16a636054c83cdb0f459206aa1ad609]
# to [c5081b872303b49b303ca69d9ae94176f98e00e1]
#
# patch "pidgin/win32/nsis/pixmaps/pidgin-intro.bmp"
# from [743fe3b36d453397c445fe08ea301f9163b07923]
# to [a286d035366a6522fa166cc53fcbfbaa2f2de370]
#
# patch "share/ca-certs/Makefile.am"
# from [6fdd6599e29bf50e32832da473dbfea86f59cde8]
# to [d33109c71b83ea1f09f3df5b78fcbdb6ebe94232]
#
# set "pidgin/pixmaps/status/11/log-in.png"
# attr "mtn:manual_merge"
# value "true"
#
# set "pidgin/pixmaps/status/11/log-out.png"
# attr "mtn:manual_merge"
# value "true"
#
# set "pidgin/pixmaps/toolbar/11/message-new.png"
# attr "mtn:manual_merge"
# value "true"
#
============================================================
--- libpurple/protocols/bonjour/dns_sd_proxy.c 5199882594a26f949814387e509c1766c0f67dd4
+++ libpurple/protocols/bonjour/dns_sd_proxy.c 5199882594a26f949814387e509c1766c0f67dd4
@@ -0,0 +1,181 @@
+/**
+ *
+ * Purple is the legal property of its developers, whose names are too numerous
+ * to list here. Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.
+ */
+
+#include "win32dep.h"
+#include "dns_sd_proxy.h"
+
+#ifndef LINK_DNS_SD_DIRECTLY
+static DNSServiceErrorType (DNSSD_API* _DNSServiceAddRecord)(DNSServiceRef sdRef, DNSRecordRef *RecordRef, DNSServiceFlags flags,
+ uint16_t rrtype, uint16_t rdlen, const void *rdata, uint32_t ttl);
+static DNSServiceErrorType (DNSSD_API* _DNSServiceBrowse)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *regtype, const char *domain, DNSServiceBrowseReply callBack, void *context);
+static int (DNSSD_API* _DNSServiceConstructFullName)(char *fullName, const char *service, const char *regtype, const char *domain);
+static DNSServiceErrorType (DNSSD_API* _DNSServiceProcessResult)(DNSServiceRef sdRef);
+static DNSServiceErrorType (DNSSD_API* _DNSServiceQueryRecord)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *fullname, uint16_t rrtype, uint16_t rrclass, DNSServiceQueryRecordReply callBack, void *context);
+static void (DNSSD_API* _DNSServiceRefDeallocate)(DNSServiceRef sdRef);
+static int (DNSSD_API* _DNSServiceRefSockFD)(DNSServiceRef sdRef);
+static DNSServiceErrorType (DNSSD_API* _DNSServiceRegister)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *name, const char *regtype, const char *domain, const char *host, uint16_t port, uint16_t txtLen,
+ const void *txtRecord, DNSServiceRegisterReply callBack, void *context);
+static DNSServiceErrorType (DNSSD_API* _DNSServiceResolve)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, const char *name,
+ const char *regtype, const char *domain, DNSServiceResolveReply callBack, void *context);
+static DNSServiceErrorType (DNSSD_API* _DNSServiceRemoveRecord)(DNSServiceRef sdRef, DNSRecordRef RecordRef, DNSServiceFlags flags);
+static DNSServiceErrorType (DNSSD_API* _DNSServiceUpdateRecord)(DNSServiceRef sdRef, DNSRecordRef RecordRef, DNSServiceFlags flags,
+ uint16_t rdlen, const void *rdata, uint32_t ttl);
+static void (DNSSD_API* _TXTRecordCreate)(TXTRecordRef *txtRecord, uint16_t bufferLen, void *buffer);
+static void (DNSSD_API* _TXTRecordDeallocate)(TXTRecordRef *txtRecord);
+static const void * (DNSSD_API* _TXTRecordGetBytesPtr)(const TXTRecordRef *txtRecord);
+static int16_t (DNSSD_API* _TXTRecordGetLength)(const TXTRecordRef *txtRecord);
+static const void * (DNSSD_API* _TXTRecordGetValuePtr)(uint16_t txtLen, const void *txtRecord, const char *key, uint8_t *valueLen);
+static DNSServiceErrorType (DNSSD_API* _TXTRecordSetValue)(TXTRecordRef *txtRecord, const char *key, uint8_t valueSize, const void *value);
+#endif
+
+gboolean dns_sd_available(void) {
+#ifndef LINK_DNS_SD_DIRECTLY
+ static gboolean initialized = FALSE;
+ static gboolean loaded = FALSE;
+
+ if (!initialized) {
+ initialized = TRUE;
+ if ((_DNSServiceAddRecord = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceAddRecord"))
+ && (_DNSServiceBrowse = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceBrowse"))
+ && (_DNSServiceConstructFullName = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceConstructFullName"))
+ && (_DNSServiceProcessResult = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceProcessResult"))
+ && (_DNSServiceQueryRecord = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceQueryRecord"))
+ && (_DNSServiceRefDeallocate = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceRefDeallocate"))
+ && (_DNSServiceRefSockFD = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceRefSockFD"))
+ && (_DNSServiceRegister = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceRegister"))
+ && (_DNSServiceResolve = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceResolve"))
+ && (_DNSServiceRemoveRecord = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceRemoveRecord"))
+ && (_DNSServiceUpdateRecord = (void *) wpurple_find_and_loadproc("dnssd.dll", "DNSServiceUpdateRecord"))
+ && (_TXTRecordCreate = (void *) wpurple_find_and_loadproc("dnssd.dll", "TXTRecordCreate"))
+ && (_TXTRecordDeallocate = (void *) wpurple_find_and_loadproc("dnssd.dll", "TXTRecordDeallocate"))
+ && (_TXTRecordGetBytesPtr = (void *) wpurple_find_and_loadproc("dnssd.dll", "TXTRecordGetBytesPtr"))
+ && (_TXTRecordGetLength = (void *) wpurple_find_and_loadproc("dnssd.dll", "TXTRecordGetLength"))
+ && (_TXTRecordGetValuePtr = (void *) wpurple_find_and_loadproc("dnssd.dll", "TXTRecordGetValuePtr"))
+ && (_TXTRecordSetValue = (void *) wpurple_find_and_loadproc("dnssd.dll", "TXTRecordSetValue"))) {
+ loaded = TRUE;
+ }
+ }
+ return loaded;
+#else
+ return TRUE;
+#endif
+}
+
+#ifndef LINK_DNS_SD_DIRECTLY
+
+DNSServiceErrorType _wpurple_DNSServiceAddRecord(DNSServiceRef sdRef, DNSRecordRef *RecordRef, DNSServiceFlags flags,
+ uint16_t rrtype, uint16_t rdlen, const void *rdata, uint32_t ttl) {
+ g_return_val_if_fail(_DNSServiceAddRecord != NULL, kDNSServiceErr_Unknown);
+ return (_DNSServiceAddRecord)(sdRef, RecordRef, flags, rrtype, rdlen, rdata, ttl);
+}
+
+DNSServiceErrorType _wpurple_DNSServiceBrowse(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *regtype, const char *domain, DNSServiceBrowseReply callBack, void *context) {
+ g_return_val_if_fail(_DNSServiceBrowse != NULL, kDNSServiceErr_Unknown);
+ return (_DNSServiceBrowse)(sdRef, flags, interfaceIndex, regtype, domain, callBack, context);
+}
+
+int _wpurple_DNSServiceConstructFullName(char *fullName, const char *service, const char *regtype, const char *domain) {
+ g_return_val_if_fail(_DNSServiceConstructFullName != NULL, 0);
+ return (_DNSServiceConstructFullName)(fullName, service, regtype, domain);
+}
+
+DNSServiceErrorType _wpurple_DNSServiceProcessResult(DNSServiceRef sdRef) {
+ g_return_val_if_fail(_DNSServiceProcessResult != NULL, kDNSServiceErr_Unknown);
+ return (_DNSServiceProcessResult)(sdRef);
+}
+
+
+DNSServiceErrorType _wpurple_DNSServiceQueryRecord(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *fullname, uint16_t rrtype, uint16_t rrclass, DNSServiceQueryRecordReply callBack, void *context) {
+ g_return_val_if_fail(_DNSServiceQueryRecord != NULL, kDNSServiceErr_Unknown);
+ return (_DNSServiceQueryRecord)(sdRef, flags, interfaceIndex, fullname, rrtype, rrclass, callBack, context);
+}
+
+void _wpurple_DNSServiceRefDeallocate(DNSServiceRef sdRef) {
+ g_return_if_fail(_DNSServiceRefDeallocate != NULL);
+ (_DNSServiceRefDeallocate)(sdRef);
+}
+
+int _wpurple_DNSServiceRefSockFD(DNSServiceRef sdRef) {
+ g_return_val_if_fail(_DNSServiceRefSockFD != NULL, -1);
+ return (_DNSServiceRefSockFD)(sdRef);
+}
+
+DNSServiceErrorType _wpurple_DNSServiceRegister(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *name, const char *regtype, const char *domain, const char *host, uint16_t port, uint16_t txtLen,
+ const void *txtRecord, DNSServiceRegisterReply callBack, void *context) {
+ g_return_val_if_fail(_DNSServiceRegister != NULL, kDNSServiceErr_Unknown);
+ return (_DNSServiceRegister)(sdRef, flags, interfaceIndex, name, regtype, domain, host, port, txtLen, txtRecord, callBack, context);
+}
+
+DNSServiceErrorType _wpurple_DNSServiceResolve(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, const char *name,
+ const char *regtype, const char *domain, DNSServiceResolveReply callBack, void *context) {
+ g_return_val_if_fail(_DNSServiceResolve != NULL, kDNSServiceErr_Unknown);
+ return (_DNSServiceResolve)(sdRef, flags, interfaceIndex, name, regtype, domain, callBack, context);
+}
+
+DNSServiceErrorType _wpurple_DNSServiceRemoveRecord(DNSServiceRef sdRef, DNSRecordRef RecordRef, DNSServiceFlags flags) {
+ g_return_val_if_fail(_DNSServiceRemoveRecord != NULL, kDNSServiceErr_Unknown);
+ return (_DNSServiceRemoveRecord)(sdRef, RecordRef, flags);
+}
+
+DNSServiceErrorType _wpurple_DNSServiceUpdateRecord(DNSServiceRef sdRef, DNSRecordRef RecordRef, DNSServiceFlags flags,
+ uint16_t rdlen, const void *rdata, uint32_t ttl) {
+ g_return_val_if_fail(_DNSServiceUpdateRecord != NULL, kDNSServiceErr_Unknown);
+ return (_DNSServiceUpdateRecord)(sdRef, RecordRef, flags, rdlen, rdata, ttl);
+}
+
+void _wpurple_TXTRecordCreate(TXTRecordRef *txtRecord, uint16_t bufferLen, void *buffer) {
+ g_return_if_fail(_TXTRecordCreate != NULL);
+ (_TXTRecordCreate)(txtRecord, bufferLen, buffer);
+}
+
+void _wpurple_TXTRecordDeallocate(TXTRecordRef *txtRecord) {
+ g_return_if_fail(_TXTRecordDeallocate != NULL);
+ (_TXTRecordDeallocate)(txtRecord);
+}
+
+const void * _wpurple_TXTRecordGetBytesPtr(const TXTRecordRef *txtRecord) {
+ g_return_val_if_fail(_TXTRecordGetBytesPtr != NULL, NULL);
+ return (_TXTRecordGetBytesPtr)(txtRecord);
+}
+
+uint16_t _wpurple_TXTRecordGetLength(const TXTRecordRef *txtRecord) {
+ g_return_val_if_fail(_TXTRecordGetLength != NULL, 0);
+ return (_TXTRecordGetLength)(txtRecord);
+}
+
+const void * _wpurple_TXTRecordGetValuePtr(uint16_t txtLen, const void *txtRecord, const char *key, uint8_t *valueLen) {
+ g_return_val_if_fail(_TXTRecordGetValuePtr != NULL, NULL);
+ return (_TXTRecordGetValuePtr)(txtLen, txtRecord, key, valueLen);
+}
+
+DNSServiceErrorType _wpurple_TXTRecordSetValue(TXTRecordRef *txtRecord, const char *key, uint8_t valueSize, const void *value) {
+ g_return_val_if_fail(_TXTRecordSetValue != NULL, kDNSServiceErr_Unknown);
+ return (_TXTRecordSetValue)(txtRecord, key, valueSize, value);
+}
+
+#endif /*LINK_DNS_SD_DIRECTLY*/
+
============================================================
# pidgin/pixmaps/status/11/log-in.png is binary
============================================================
# pidgin/pixmaps/status/11/log-out.png is binary
============================================================
# pidgin/pixmaps/toolbar/11/message-new.png is binary
============================================================
--- share/ca-certs/Microsoft_Secure_Server_Authority.pem e1a29b84c3814767aa6bfc86f534fc7cdd70bbe6
+++ share/ca-certs/Microsoft_Secure_Server_Authority.pem e1a29b84c3814767aa6bfc86f534fc7cdd70bbe6
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIE1TCCA72gAwIBAgIKYSsApAADAAAAFDANBgkqhkiG9w0BAQUFADAnMSUwIwYD
+VQQDExxNaWNyb3NvZnQgSW50ZXJuZXQgQXV0aG9yaXR5MB4XDTA2MDQyMTE5MTEw
+NFoXDTA5MDQxOTIzNTkwMFowgYsxEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJ
+kiaJk/IsZAEZFgltaWNyb3NvZnQxFDASBgoJkiaJk/IsZAEZFgRjb3JwMRcwFQYK
+CZImiZPyLGQBGRYHcmVkbW9uZDEqMCgGA1UEAxMhTWljcm9zb2Z0IFNlY3VyZSBT
+ZXJ2ZXIgQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+syn2tJzCJKsQy98cYrzBT0qMSqTMibRel34u64jqd1GKP9cRMHagyNLZIb1rv8NZ
+XPdf2uI8hGc4lxRh4iprbFPOZSiHQIyq9zoqLS7Bh/KnqnRX4CCntCQbWVa/s5c5
+FbGD5XG5AvA8sjn56WPotYLGeWrSZ/k2bcH9YgvQ2Yrt8t1VxPQciSuX82KSn2Kx
+xxJKgQtAgZpyekR5QdIUUvQsEAPaCfWRsF/OMQoyc4UeAxAELavr2vlq869ye3Fu
+f3fUhVEk8kxtiVPYWYBTAhWts62pEwaKGPteMsGnvbX+BRgIwc55vfs6KWXxnBUL
+9Q8BfQQLbT8nQe7hO4XXMQIDAQABo4IBnDCCAZgwEgYDVR0TAQH/BAgwBgEB/wIB
+ATAdBgNVHQ4EFgQUp08F+9GOQVM3lcpL4UMfWutNzVAwCwYDVR0PBAQDAgGGMBIG
+CSsGAQQBgjcVAQQFAgMDAAMwIwYJKwYBBAGCNxUCBBYEFMnAnEM4ke3T6fpSclUI
+g7XN8o57MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFDNf
+3Q+3nFzO7ofdcHCLX33PIry5MGYGA1UdHwRfMF0wW6BZoFeGNGh0dHA6Ly9jcmwu
+bWljcm9zb2Z0LmNvbS9wa2kvbXNjb3JwL2NybC9tc3d3dygzKS5jcmyGH2h0dHA6
+Ly9jb3JwcGtpL2NybC9tc3d3dygzKS5jcmwweQYIKwYBBQUHAQEEbTBrMDwGCCsG
+AQUFBzAChjBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9tc3d3
+dygzKS5jcnQwKwYIKwYBBQUHMAKGH2h0dHA6Ly9jb3JwcGtpL2FpYS9tc3d3dygz
+KS5jcnQwDQYJKoZIhvcNAQEFBQADggEBAIJDQpkqhodC3ZmKPB4dTveoFCpuc4C0
+qdXPLggvRiTnQJP/SRdnfQwkaulDS3771zWo3fO1/tTiCmVvtU4LNbISpQmrz41q
+AP2QIUl/d4Fjiaz0qchNxmTRlVLGsTrwkMMkOh9MUQEcNyk9RuGepf/1+66qeEnx
+eCgK09yIcbgdE9ffk5ueTX7TNfgoNZO9ORnRS1p7nra3b0Wi1kdGqDmbpw7We+M8
+6B8VpPa0QaofgRdl2dzOijd7hGN+cgRNMvdGpRxzkaWUA52rBOrEVyJLu2IUksPV
+0Q/0ZZMNZXJh8MmWW/o8ebQZJQshN5p4M7HiUN/cZ2onnrdZSpIwyAU=
+-----END CERTIFICATE-----
============================================================
--- INSTALL 5b39563912c3e0289a4ea052735e1566b07c513f
+++ INSTALL 4d53acadb9c90878fb040a49a257a55d13baf6f7
@@ -40,7 +40,8 @@ The simplest way to compile this package
the package.
4. Type `make install' to install the programs and any data files and
- documentation.
+ documentation. You must have write access to the prefix you are
+ installing to. See below for more details on the prefix.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
============================================================
--- libpurple/certificate.c e92bb3478e85c939e696305a5286afb1b4069c19
+++ libpurple/certificate.c 950f284fa04c1cf3515cf50503deb9d55f8fd59e
@@ -88,6 +88,19 @@ purple_certificate_verify_complete(Purpl
g_return_if_fail(vrq);
+ if (st == PURPLE_CERTIFICATE_VALID) {
+ purple_debug_info("certificate",
+ "Successfully verified certificate for %s\n",
+ vrq->subject_name);
+ } else {
+ purple_debug_info("certificate",
+ "Failed to verify certificate for %s\n",
+ vrq->subject_name);
+ }
+
+
+
+
/* Pass the results on to the request's callback */
(vrq->cb)(st, vrq->cb_data);
@@ -1372,7 +1385,8 @@ x509_tls_cached_unknown_peer(PurpleCerti
purple_debug_info("certificate/x509/tls_cached",
"Checking for a CA with DN=%s\n",
ca_id);
- if ( !purple_certificate_pool_contains(ca, ca_id) ) {
+ ca_crt = purple_certificate_pool_retrieve(ca, ca_id);
+ if ( NULL == ca_crt ) {
purple_debug_info("certificate/x509/tls_cached",
"Certificate Authority with DN='%s' not "
"found. I'll prompt the user, I guess.\n",
@@ -1385,16 +1399,7 @@ x509_tls_cached_unknown_peer(PurpleCerti
return;
}
- ca_crt = purple_certificate_pool_retrieve(ca, ca_id);
g_free(ca_id);
- if (!ca_crt) {
- purple_debug_error("certificate/x509/tls_cached",
- "Certificate authority disappeared out "
- "underneath me!\n");
- purple_certificate_verify_complete(vrq,
- PURPLE_CERTIFICATE_INVALID);
- return;
- }
/* Check the signature */
if ( !purple_certificate_signed_by(end_crt, ca_crt) ) {
============================================================
--- libpurple/protocols/bonjour/Makefile.am 90d47f9af47c6f91ae2437b6776523064549ca32
+++ libpurple/protocols/bonjour/Makefile.am 66528f8cacc25d2764e00f74003ed1fa14e095da
@@ -1,5 +1,6 @@ EXTRA_DIST = \
EXTRA_DIST = \
mdns_win32.c \
+ dns_sd_proxy.c \
dns_sd_proxy.h \
Makefile.mingw
============================================================
--- libpurple/protocols/bonjour/Makefile.mingw d854d40f013c09f8f07c4674c9905b77d6b750b3
+++ libpurple/protocols/bonjour/Makefile.mingw 68142a3871b3bcb2be7229170c4bc8ea4fd13943
@@ -45,6 +45,7 @@ C_SRC = bonjour.c \
##
C_SRC = bonjour.c \
buddy.c \
+ dns_sd_proxy.c \
mdns_common.c \
mdns_win32.c \
parser.c \
@@ -59,11 +60,15 @@ LIBS = \
-lglib-2.0 \
-lws2_32 \
-lintl \
- -ldnssd \
-lnetapi32 \
-lxml2 \
-lpurple
+ifeq ($(LINK_DNS_SD_DIRECTLY), 1)
+ CFLAGS += -DLINK_DNS_SD_DIRECTLY
+ LIBS += -ldnssd
+endif
+
include $(PIDGIN_COMMON_RULES)
##
============================================================
--- libpurple/protocols/bonjour/bonjour.c 4bf190ec74fffd44c858abfabab31e1cd8cbfa18
+++ libpurple/protocols/bonjour/bonjour.c 64780fa8de009d3f0535aae3bc3d10505be400da
@@ -26,6 +26,7 @@
#define UNICODE
#include <windows.h>
#include <lm.h>
+#include "dns_sd_proxy.h"
#endif
#include "internal.h"
@@ -99,6 +100,17 @@ bonjour_login(PurpleAccount *account)
PurpleStatus *status;
PurplePresence *presence;
+#ifdef _WIN32
+ if (!dns_sd_available()) {
+ gc->wants_to_die = TRUE;
+ purple_connection_error(gc,
+ _("The Apple Bonjour For Windows toolkit wasn't found, see the FAQ at: "
+ "http://developer.pidgin.im/wiki/Using%20Pidgin#CanIusePidginforBonjourLink-LocalMessaging"
+ " for more information."));
+ return;
+ }
+#endif
+
gc->flags |= PURPLE_CONNECTION_HTML;
gc->proto_data = bd = g_new0(BonjourData, 1);
@@ -155,13 +167,13 @@ bonjour_close(PurpleConnection *connecti
BonjourData *bd = connection->proto_data;
/* Stop looking for buddies in the LAN */
- if (bd->dns_sd_data != NULL)
+ if (bd != NULL && bd->dns_sd_data != NULL)
{
bonjour_dns_sd_stop(bd->dns_sd_data);
bonjour_dns_sd_free(bd->dns_sd_data);
}
- if (bd->jabber_data != NULL)
+ if (bd != NULL && bd->jabber_data != NULL)
{
/* Stop waiting for conversations */
bonjour_jabber_stop(bd->jabber_data);
============================================================
--- libpurple/protocols/bonjour/dns_sd_proxy.h 5c8bb1f2d994ebfb1554d95a18b59601a1f06e4b
+++ libpurple/protocols/bonjour/dns_sd_proxy.h 51e3eb25f562cfbd2a9609ce2511f8a2dedee880
@@ -10,4 +10,85 @@
#include <dns_sd.h>
+gboolean dns_sd_available(void);
+
+#ifndef LINK_DNS_SD_DIRECTLY
+
+DNSServiceErrorType _wpurple_DNSServiceAddRecord(DNSServiceRef sdRef, DNSRecordRef *RecordRef, DNSServiceFlags flags,
+ uint16_t rrtype, uint16_t rdlen, const void *rdata, uint32_t ttl);
+#define DNSServiceAddRecord(sdRef, RecordRef, flags, rrtype, rdlen, rdata, ttl) \
+ _wpurple_DNSServiceAddRecord(sdRef, RecordRef, flags, rrtype, rdlen, rdata, ttl)
+
+DNSServiceErrorType _wpurple_DNSServiceBrowse(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *regtype, const char *domain, DNSServiceBrowseReply callBack, void *context);
+#define DNSServiceBrowse(sdRef, flags, interfaceIndex, regtype, domain, callBack, context) \
+ _wpurple_DNSServiceBrowse(sdRef, flags, interfaceIndex, regtype, domain, callBack, context)
+
+int _wpurple_DNSServiceConstructFullName(char *fullName, const char *service, const char *regtype, const char *domain);
+#define DNSServiceConstructFullName(fullName, service, regtype, domain) \
+ _wpurple_DNSServiceConstructFullName(fullName, service, regtype, domain)
+
+DNSServiceErrorType _wpurple_DNSServiceProcessResult(DNSServiceRef sdRef);
+#define DNSServiceProcessResult(sdRef) \
+ _wpurple_DNSServiceProcessResult(sdRef);
+
+DNSServiceErrorType _wpurple_DNSServiceQueryRecord(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *fullname, uint16_t rrtype, uint16_t rrclass, DNSServiceQueryRecordReply callBack, void *context);
+#define DNSServiceQueryRecord(sdRef, flags, interfaceIndex, fullname, rrtype, rrclass, callBack, context) \
+ _wpurple_DNSServiceQueryRecord(sdRef, flags, interfaceIndex, fullname, rrtype, rrclass, callBack, context)
+
+void _wpurple_DNSServiceRefDeallocate(DNSServiceRef sdRef);
+#define DNSServiceRefDeallocate(sdRef) \
+ _wpurple_DNSServiceRefDeallocate(sdRef)
+
+int _wpurple_DNSServiceRefSockFD(DNSServiceRef sdRef);
+#define DNSServiceRefSockFD(sdRef) \
+ _wpurple_DNSServiceRefSockFD(sdRef)
+
+DNSServiceErrorType _wpurple_DNSServiceRegister(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
+ const char *name, const char *regtype, const char *domain, const char *host, uint16_t port, uint16_t txtLen,
+ const void *txtRecord, DNSServiceRegisterReply callBack, void *context);
+#define DNSServiceRegister(sdRef, flags, interfaceIndex, name, regtype, domain, host, port, txtLen, txtRecord, callBack, context) \
+ _wpurple_DNSServiceRegister(sdRef, flags, interfaceIndex, name, regtype, domain, host, port, txtLen, txtRecord, callBack, context)
+
+DNSServiceErrorType _wpurple_DNSServiceResolve(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, const char *name,
+ const char *regtype, const char *domain, DNSServiceResolveReply callBack, void *context);
+#define DNSServiceResolve(sdRef, flags, interfaceIndex, name, regtype, domain, callBack, context) \
+ _wpurple_DNSServiceResolve(sdRef, flags, interfaceIndex, name, regtype, domain, callBack, context)
+
+DNSServiceErrorType _wpurple_DNSServiceRemoveRecord(DNSServiceRef sdRef, DNSRecordRef RecordRef, DNSServiceFlags flags);
+#define DNSServiceRemoveRecord(sdRef, RecordRef, flags) \
+ _wpurple_DNSServiceRemoveRecord(sdRef, RecordRef, flags)
+
+DNSServiceErrorType _wpurple_DNSServiceUpdateRecord(DNSServiceRef sdRef, DNSRecordRef RecordRef, DNSServiceFlags flags,
+ uint16_t rdlen, const void *rdata, uint32_t ttl);
+#define DNSServiceUpdateRecord(sdRef, RecordRef, flags, rdlen, rdata, ttl) \
+ _wpurple_DNSServiceUpdateRecord(sdRef, RecordRef, flags, rdlen, rdata, ttl)
+
+void _wpurple_TXTRecordCreate(TXTRecordRef *txtRecord, uint16_t bufferLen, void *buffer);
+#define TXTRecordCreate(txtRecord, bufferLen, buffer) \
+ _wpurple_TXTRecordCreate(txtRecord, bufferLen, buffer)
+
+void _wpurple_TXTRecordDeallocate(TXTRecordRef *txtRecord);
+#define TXTRecordDeallocate(txtRecord) \
+ _wpurple_TXTRecordDeallocate(txtRecord)
+
+const void * _wpurple_TXTRecordGetBytesPtr(const TXTRecordRef *txtRecord);
+#define TXTRecordGetBytesPtr(txtRecord) \
+ _wpurple_TXTRecordGetBytesPtr(txtRecord)
+
+uint16_t _wpurple_TXTRecordGetLength(const TXTRecordRef *txtRecord);
+#define TXTRecordGetLength(txtRecord) \
+ _wpurple_TXTRecordGetLength(txtRecord)
+
+const void * _wpurple_TXTRecordGetValuePtr(uint16_t txtLen, const void *txtRecord, const char *key, uint8_t *valueLen);
+#define TXTRecordGetValuePtr(txtLen, txtRecord, key, valueLen) \
+ _wpurple_TXTRecordGetValuePtr(txtLen, txtRecord, key, valueLen)
+
+DNSServiceErrorType _wpurple_TXTRecordSetValue(TXTRecordRef *txtRecord, const char *key, uint8_t valueSize, const void *value);
+#define TXTRecordSetValue(txtRecord, key, valueSize, value) \
+ _wpurple_TXTRecordSetValue(txtRecord, key, valueSize, value)
+
+#endif /*LINK_DNS_SD_DIRECTLY*/
+
#endif
============================================================
--- libpurple/protocols/bonjour/mdns_win32.c 03e5cd92236058b8970463c7932950f7a356c058
+++ libpurple/protocols/bonjour/mdns_win32.c aeba928ec9fa711f19c2bfbbee52b2ca9c1469c1
@@ -1,4 +1,9 @@
-/*
+/**
+ *
+ * Purple is the legal property of its developers, whose names are too numerous
+ * to list here. Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
============================================================
--- libpurple/protocols/gg/buddylist.c aa1eb8a29f943a90c6fb14c0f6934123fc6b8730
+++ libpurple/protocols/gg/buddylist.c 353535de7d31ded3a69e0486d86d6d22604f31e6
@@ -27,6 +27,13 @@
#include "gg-utils.h"
#include "buddylist.h"
+#define F_FIRSTNAME 0
+#define F_LASTNAME 1
+/* #define F_ 2 */
+#define F_NICKNAME 3
+#define F_PHONE 4
+#define F_GROUP 5
+#define F_UIN 6
/* void ggp_buddylist_send(PurpleConnection *gc) {{{ */
void ggp_buddylist_send(PurpleConnection *gc)
@@ -90,7 +97,7 @@ void ggp_buddylist_load(PurpleConnection
gchar **users_tbl;
int i;
- /* Don't limit a number of records in a buddylist. */
+ /* Don't limit the number of records in a buddylist. */
users_tbl = g_strsplit(buddylist, "\r\n", -1);
for (i = 0; users_tbl[i] != NULL; i++) {
@@ -108,8 +115,8 @@ void ggp_buddylist_load(PurpleConnection
continue;
}
- show = charset_convert(data_tbl[3], "CP1250", "UTF-8");
- name = data_tbl[6];
+ show = charset_convert(data_tbl[F_NICKNAME], "CP1250", "UTF-8");
+ name = data_tbl[F_UIN];
if ('\0' == *name) {
purple_debug_warning("gg",
"Something is wrong on line %d of the buddylist. Skipping.\n",
@@ -121,7 +128,7 @@ void ggp_buddylist_load(PurpleConnection
show = g_strdup(name);
}
- purple_debug_info("gg", "got buddy: name=%s show=%s\n", name, show);
+ purple_debug_info("gg", "got buddy: name=%s; show=%s\n", name, show);
if (purple_find_buddy(purple_connection_get_account(gc), name)) {
g_free(show);
@@ -131,19 +138,19 @@ void ggp_buddylist_load(PurpleConnection
g = g_strdup("Gadu-Gadu");
- if ('\0' != data_tbl[5]) {
+ if ('\0' != data_tbl[F_GROUP]) {
/* XXX: Probably buddy should be added to all the groups. */
/* Hard limit to at most 50 groups */
- gchar **group_tbl = g_strsplit(data_tbl[5], ",", 50);
+ gchar **group_tbl = g_strsplit(data_tbl[F_GROUP], ",", 50);
if (ggp_array_size(group_tbl) > 0) {
g_free(g);
- g = g_strdup(group_tbl[0]);
+ g = charset_convert(group_tbl[0], "CP1250", "UTF-8");
}
g_strfreev(group_tbl);
}
buddy = purple_buddy_new(purple_connection_get_account(gc), name,
- strlen(show) ? show : NULL);
+ strlen(show) ? show : NULL);
if (!(group = purple_find_group(g))) {
group = purple_group_new(g);
@@ -159,7 +166,6 @@ void ggp_buddylist_load(PurpleConnection
g_strfreev(users_tbl);
ggp_buddylist_send(gc);
-
}
/* }}} */
@@ -192,8 +198,7 @@ void ggp_buddylist_offline(PurpleConnect
continue;
purple_prpl_got_user_status(
- purple_connection_get_account(gc),
- buddy->name, "offline", NULL);
+ account, buddy->name, "offline", NULL);
purple_debug_info("gg",
"ggp_buddylist_offline: gone: %s\n",
============================================================
--- libpurple/protocols/msn/soap.c b4246c343cc7a5051c673f14257ab0918a4db156
+++ libpurple/protocols/msn/soap.c 8a27072e32a3cb6052fcaafc1dcd0d1abb6b65d7
@@ -26,7 +26,7 @@
#include "msn.h"
#include "soap.h"
-
+#define MSN_SOAP_DEBUG
/*local function prototype*/
void msn_soap_set_process_step(MsnSoapConn *soapconn, MsnSoapStep step);
============================================================
--- pidgin/pidginstock.c a1a460cffd8fa050434e5402f4800f561f2528c5
+++ pidgin/pidginstock.c 2c265aa9d5a211ec43e10e414febf9937bb03420
@@ -114,11 +114,11 @@ static struct SizedStockIcon {
{ PIDGIN_STOCK_STATUS_CHAT, "status", "chat.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
{ PIDGIN_STOCK_STATUS_INVISIBLE,"status", "invisible.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
{ PIDGIN_STOCK_STATUS_XA, "status", "extended-away.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, PIDGIN_STOCK_STATUS_XA_I },
- { PIDGIN_STOCK_STATUS_LOGIN, "status", "log-in.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL },
- { PIDGIN_STOCK_STATUS_LOGOUT, "status", "log-out.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL },
+ { PIDGIN_STOCK_STATUS_LOGIN, "status", "log-in.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL },
+ { PIDGIN_STOCK_STATUS_LOGOUT, "status", "log-out.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL },
{ PIDGIN_STOCK_STATUS_OFFLINE, "status", "offline.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_OFFLINE_I },
{ PIDGIN_STOCK_STATUS_PERSON, "status", "person.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
- { PIDGIN_STOCK_STATUS_MESSAGE, "toolbar", "message-new.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+ { PIDGIN_STOCK_STATUS_MESSAGE, "toolbar", "message-new.png", TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
{ PIDGIN_STOCK_STATUS_IGNORED, "emblems", "blocked.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
{ PIDGIN_STOCK_STATUS_FOUNDER, "emblems", "founder.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
============================================================
--- pidgin/pixmaps/status/11/Makefile.am 9a19ff6d6fcc1bb1b406d6407a095322e30e8c8b
+++ pidgin/pixmaps/status/11/Makefile.am 206419b4c8fd3cec428f705dab89a09c27326636
@@ -6,6 +6,8 @@ EXTRA_DIST = available.png \
chat.png \
extended-away.png \
invisible.png \
+ log-in.png \
+ log-out.png \
offline.png \
person.png
============================================================
--- pidgin/pixmaps/toolbar/Makefile.am 497746a6a16a636054c83cdb0f459206aa1ad609
+++ pidgin/pixmaps/toolbar/Makefile.am c5081b872303b49b303ca69d9ae94176f98e00e1
@@ -1,6 +1,11 @@ SUBDIRS = 16 22
SUBDIRS = 16 22
+TINY_ICONS = 11/message-new.png
EXTRA_DIST = \
Makefile.mingw \
16/Makefile.mingw \
+ 22/Makefile.mingw \
+ $(TINY_ICONS)
+
+pidgintinytoolbarpixdir = $(datadir)/pixmaps/pidgin/toolbar/11
+pidgintinytoolbarpix_DATA = $(TINY_ICONS)
- 22/Makefile.mingw
============================================================
# pidgin/win32/nsis/pixmaps/pidgin-intro.bmp is binary
============================================================
--- share/ca-certs/Makefile.am 6fdd6599e29bf50e32832da473dbfea86f59cde8
+++ share/ca-certs/Makefile.am d33109c71b83ea1f09f3df5b78fcbdb6ebe94232
@@ -1,7 +1,8 @@ cacerts_DATA = \
cacertsdir = $(datadir)/purple/ca-certs
cacerts_DATA = \
Equifax_Secure_CA.pem \
GTE_CyberTrust_Global_Root.pem \
+ Microsoft_Secure_Server_Authority.pem \
Verisign_RSA_Secure_Server_CA.pem \
Verisign_Class3_Primary_CA.pem
-------------- next part --------------
#
#
# patch "finch/libgnt/gntmain.c"
# from [681d2e87ecf9a093e70f4c6a7dba4c345a0a5e07]
# to [7ddfbc8f64142c8b3f27e408710c3e096e961fdd]
#
============================================================
--- finch/libgnt/gntmain.c 681d2e87ecf9a093e70f4c6a7dba4c345a0a5e07
+++ finch/libgnt/gntmain.c 7ddfbc8f64142c8b3f27e408710c3e096e961fdd
@@ -223,6 +223,7 @@ io_invoke(GIOChannel *source, GIOConditi
char keys[256];
int rd;
char *k;
+ char *cvrt = NULL;
if (wm->mode == GNT_KP_MODE_WAIT_ON_CHILD)
return FALSE;
@@ -243,15 +244,16 @@ io_invoke(GIOChannel *source, GIOConditi
raise(SIGABRT);
}
- gnt_wm_set_event_stack(wm, TRUE);
rd += HOLDING_ESCAPE;
+ if (HOLDING_ESCAPE)
+ keys[0] = '\033';
keys[rd] = 0;
- if (mouse_enabled && detect_mouse_action(keys))
- goto end;
+ gnt_wm_set_event_stack(wm, TRUE);
- if (HOLDING_ESCAPE)
- keys[0] = '\033';
- k = keys;
+ cvrt = g_locale_to_utf8(keys, rd, (gsize*)&rd, NULL, NULL);
+ k = cvrt ? cvrt : keys;
+ if (mouse_enabled && detect_mouse_action(k))
+ goto end;
#if 0
/* I am not sure what's happening here. If this actually does something,
@@ -290,6 +292,7 @@ end:
}
end:
gnt_wm_set_event_stack(wm, FALSE);
+ g_free(cvrt);
return TRUE;
}
More information about the Commits
mailing list