Mercurial > pidgin
changeset 29327:c4f836780e1c
propagate from branch 'im.pidgin.pidgin' (head 5e3164a6a1df028fc66f7e072be0d78d9d995389)
to branch 'im.pidgin.pidgin.next.minor' (head 6ee3a8d962ff2bb002967cc29bd5aa0b45bc2028)
author | John Bailey <rekkanoryo@rekkanoryo.org> |
---|---|
date | Sat, 28 Nov 2009 02:22:49 +0000 |
parents | 588a7aef5f7c (diff) 45a94940c122 (current diff) |
children | 1e19c439fa7a |
files | libpurple/media.c libpurple/media/media.c libpurple/protocols/jabber/google.c libpurple/protocols/jabber/jabber.c libpurple/protocols/jabber/jingle/session.c libpurple/protocols/jabber/presence.c libpurple/protocols/jabber/si.c pidgin/gtkcelllayout.c pidgin/gtkcelllayout.h pidgin/gtkcellrendererprogress.c pidgin/gtkcellrendererprogress.h pidgin/gtkcellview.c pidgin/gtkcellview.h pidgin/gtkcellviewmenuitem.c pidgin/gtkcellviewmenuitem.h pidgin/gtkexpander.c pidgin/gtkexpander.h pidgin/gtkwhiteboard.c pidgin/pidgincombobox.c pidgin/pidgincombobox.h pidgin/pixmaps/tray/16/tray-away.png pidgin/pixmaps/tray/16/tray-busy.png pidgin/pixmaps/tray/16/tray-connecting.png pidgin/pixmaps/tray/16/tray-extended-away.png pidgin/pixmaps/tray/16/tray-invisible.png pidgin/pixmaps/tray/16/tray-message.png pidgin/pixmaps/tray/16/tray-new-im.png pidgin/pixmaps/tray/16/tray-offline.png pidgin/pixmaps/tray/16/tray-online.png pidgin/pixmaps/tray/22/tray-away.png pidgin/pixmaps/tray/22/tray-busy.png pidgin/pixmaps/tray/22/tray-connecting.png pidgin/pixmaps/tray/22/tray-extended-away.png pidgin/pixmaps/tray/22/tray-invisible.png pidgin/pixmaps/tray/22/tray-message.png pidgin/pixmaps/tray/22/tray-new-im.png pidgin/pixmaps/tray/22/tray-offline.png pidgin/pixmaps/tray/22/tray-online.png pidgin/pixmaps/tray/32/tray-away.png pidgin/pixmaps/tray/32/tray-busy.png pidgin/pixmaps/tray/32/tray-connecting.png pidgin/pixmaps/tray/32/tray-extended-away.png pidgin/pixmaps/tray/32/tray-invisible.png pidgin/pixmaps/tray/32/tray-message.png pidgin/pixmaps/tray/32/tray-new-im.png pidgin/pixmaps/tray/32/tray-offline.png pidgin/pixmaps/tray/32/tray-online.png pidgin/pixmaps/tray/48/tray-away.png pidgin/pixmaps/tray/48/tray-busy.png pidgin/pixmaps/tray/48/tray-connecting.png pidgin/pixmaps/tray/48/tray-extended-away.png pidgin/pixmaps/tray/48/tray-invisible.png pidgin/pixmaps/tray/48/tray-message.png pidgin/pixmaps/tray/48/tray-new-im.png pidgin/pixmaps/tray/48/tray-offline.png pidgin/pixmaps/tray/48/tray-online.png |
diffstat | 83 files changed, 802 insertions(+), 760 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/finch.1.in Mon Nov 23 23:53:19 2009 +0000 +++ b/doc/finch.1.in Sat Nov 28 02:22:49 2009 +0000 @@ -114,7 +114,7 @@ .B Ctrl \+ o \fR or \fB F10 Bring up the menu (if there is one) for a window. .TP -.B F11 +.B F11 \fR or \fB Ctrl \+ x Popup the context menu (if there is one) for the selected widget. .TP .B Alt \+ /
--- a/libpurple/certificate.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/certificate.c Sat Nov 28 02:22:49 2009 +0000 @@ -26,8 +26,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include <glib.h> - #include "internal.h" #include "certificate.h" #include "dbus-maybe.h"
--- a/libpurple/cmds.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/cmds.c Sat Nov 28 02:22:49 2009 +0000 @@ -21,8 +21,6 @@ * */ -#include <string.h> - #include "internal.h" #include "account.h"
--- a/libpurple/dbus-server.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/dbus-server.c Sat Nov 28 02:22:49 2009 +0000 @@ -25,6 +25,8 @@ #define DBUS_API_SUBJECT_TO_CHANGE #endif +#include "internal.h" + #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -42,7 +44,6 @@ #include "dbus-bindings.h" #include "debug.h" #include "core.h" -#include "internal.h" #include "savedstatuses.h" #include "smiley.h" #include "util.h"
--- a/libpurple/debug.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/debug.c Sat Nov 28 02:22:49 2009 +0000 @@ -23,8 +23,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" #include "debug.h" -#include "internal.h" #include "prefs.h" #include "util.h"
--- a/libpurple/desktopitem.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/desktopitem.c Sat Nov 28 02:22:49 2009 +0000 @@ -53,12 +53,12 @@ * Boston, MA 02111-1301, USA. */ +#include "internal.h" #include <errno.h> #include <stdio.h> #include <string.h> #include <time.h> #include "desktopitem.h" -#include "internal.h" struct _PurpleDesktopItem { int refcount;
--- a/libpurple/eventloop.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/eventloop.c Sat Nov 28 02:22:49 2009 +0000 @@ -23,8 +23,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" #include "eventloop.h" -#include "internal.h" static PurpleEventLoopUiOps *eventloop_ui_ops = NULL;
--- a/libpurple/ft.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/ft.h Sat Nov 28 02:22:49 2009 +0000 @@ -160,7 +160,10 @@ PurpleXferStatusType status; /**< File Transfer's status. */ - /* I/O operations. */ + /** I/O operations, which should be set by the prpl using + * purple_xfer_set_init_fnc() and friends. Setting #init is + * mandatory; all others are optional. + */ struct { void (*init)(PurpleXfer *xfer);
--- a/libpurple/imgstore.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/imgstore.c Sat Nov 28 02:22:49 2009 +0000 @@ -25,7 +25,6 @@ * */ -#include <glib.h> #include "internal.h" #include "dbus-maybe.h"
--- a/libpurple/media/media.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/media/media.c Sat Nov 28 02:22:49 2009 +0000 @@ -23,7 +23,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ - #include "internal.h" #include "account.h"
--- a/libpurple/mime.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/mime.c Sat Nov 28 02:22:49 2009 +0000 @@ -21,11 +21,6 @@ * USA. */ -#include <stdio.h> -#include <string.h> - -#include <glib.h> - #include "internal.h" /* this should become "util.h" if we ever get this into purple proper */
--- a/libpurple/nat-pmp.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/nat-pmp.c Sat Nov 28 02:22:49 2009 +0000 @@ -29,8 +29,8 @@ * OF SUCH DAMAGE. */ +#include "internal.h" #include "nat-pmp.h" -#include "internal.h" #include "debug.h" #include "signals.h" #include "network.h"
--- a/libpurple/ntlm.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/ntlm.c Sat Nov 28 02:22:49 2009 +0000 @@ -24,8 +24,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include <glib.h> -#include <stdlib.h> #include "internal.h" #include "util.h"
--- a/libpurple/plugins/log_reader.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/plugins/log_reader.c Sat Nov 28 02:22:49 2009 +0000 @@ -1,7 +1,7 @@ +#include "internal.h" + #include <stdio.h> -#include "internal.h" - #include "debug.h" #include "log.h" #include "plugin.h"
--- a/libpurple/plugins/signals-test.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/plugins/signals-test.c Sat Nov 28 02:22:49 2009 +0000 @@ -20,9 +20,10 @@ */ #define SIGNAL_TEST_PLUGIN_ID "core-signals-test" +#include "internal.h" + #include <stdio.h> -#include "internal.h" #include "cipher.h" #include "connection.h" #include "conversation.h"
--- a/libpurple/protocols/jabber/Makefile.am Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/Makefile.am Sat Nov 28 02:22:49 2009 +0000 @@ -5,12 +5,17 @@ pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -JABBERSOURCES = auth.c \ +JABBERSOURCES = \ + adhoccommands.c \ + adhoccommands.h \ + auth.c \ auth.h \ buddy.c \ buddy.h \ bosh.c \ bosh.h \ + caps.c \ + caps.h \ chat.c \ chat.h \ data.c \ @@ -43,10 +48,13 @@ jutil.h \ message.c \ message.h \ + namespaces.h \ oob.c \ oob.h \ parser.c \ parser.h \ + pep.c \ + pep.h \ ping.c \ ping.h \ presence.c \ @@ -55,14 +63,6 @@ roster.h \ si.c \ si.h \ - xdata.c \ - xdata.h \ - caps.c \ - caps.h \ - adhoccommands.c \ - adhoccommands.h \ - pep.c \ - pep.h \ useravatar.c \ useravatar.h \ usermood.c \ @@ -70,7 +70,9 @@ usernick.c \ usernick.h \ usertune.c \ - usertune.h + usertune.h \ + xdata.c \ + xdata.h AM_CFLAGS = $(st)
--- a/libpurple/protocols/jabber/adhoccommands.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/adhoccommands.c Sat Nov 28 02:22:49 2009 +0000 @@ -97,7 +97,7 @@ if (type == JABBER_IQ_ERROR) return; - query = xmlnode_get_child_with_namespace(packet, "query", "http://jabber.org/protocol/disco#items"); + query = xmlnode_get_child_with_namespace(packet, "query", NS_DISCO_ITEMS); if (!query) return; node = xmlnode_get_attrib(query, "node"); @@ -275,7 +275,8 @@ JabberIqType type, const char *id, xmlnode *packet, gpointer data) { - xmlnode *query = xmlnode_get_child_with_namespace(packet, "query", "http://jabber.org/protocol/disco#items"); + xmlnode *query = xmlnode_get_child_with_namespace(packet, "query", + NS_DISCO_ITEMS); jabber_adhoc_got_server_list(js, from, query); @@ -291,8 +292,9 @@ } void jabber_adhoc_server_get_list(JabberStream *js) { - JabberIq *iq = jabber_iq_new_query(js,JABBER_IQ_GET,"http://jabber.org/protocol/disco#items"); - xmlnode *query = xmlnode_get_child_with_namespace(iq->node,"query","http://jabber.org/protocol/disco#items"); + JabberIq *iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_DISCO_ITEMS); + xmlnode *query = xmlnode_get_child_with_namespace(iq->node, "query", + NS_DISCO_ITEMS); xmlnode_set_attrib(iq->node,"to",js->user->domain); xmlnode_set_attrib(query,"node","http://jabber.org/protocol/commands");
--- a/libpurple/protocols/jabber/buddy.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/buddy.c Sat Nov 28 02:22:49 2009 +0000 @@ -1466,7 +1466,7 @@ if(!jbr->client.name) return FALSE; - if(!strcmp(ns, "jabber:iq:last")) { + if(!strcmp(ns, NS_LAST_ACTIVITY)) { if(!strcmp(jbr->client.name, "Trillian")) { /* verified by nwalp 2007/05/09 */ if(!strcmp(jbr->client.version, "3.1.0.121") || @@ -1512,8 +1512,8 @@ * respond (with an error or otherwise) to jabber:iq:last * requests. There are a number of Trillian users in my * office. */ - if(!_client_is_blacklisted(jbr, "jabber:iq:last")) { - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:last"); + if(!_client_is_blacklisted(jbr, NS_LAST_ACTIVITY)) { + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_LAST_ACTIVITY); xmlnode_set_attrib(iq->node, "to", to); jabber_iq_set_callback(iq, jabber_last_parse, jbi); jbi->ids = g_slist_prepend(jbi->ids, g_strdup(iq->id)); @@ -1522,12 +1522,12 @@ if (jbr->tz_off == PURPLE_NO_TZ_OFF && (!jbr->caps.info || - jabber_resource_has_capability(jbr, "urn:xmpp:time"))) { + jabber_resource_has_capability(jbr, NS_ENTITY_TIME))) { xmlnode *child; iq = jabber_iq_new(js, JABBER_IQ_GET); xmlnode_set_attrib(iq->node, "to", to); child = xmlnode_new_child(iq->node, "time"); - xmlnode_set_namespace(child, "urn:xmpp:time"); + xmlnode_set_namespace(child, NS_ENTITY_TIME); jabber_iq_set_callback(iq, jabber_time_parse, jbi); jbi->ids = g_slist_prepend(jbi->ids, g_strdup(iq->id)); jabber_iq_send(iq); @@ -1590,7 +1590,7 @@ if (!jb->resources && is_bare_jid) { /* user is offline, send a jabber:iq:last to find out last time online */ - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:last"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_LAST_ACTIVITY); xmlnode_set_attrib(iq->node, "to", jid); jabber_iq_set_callback(iq, jabber_last_offline_parse, jbi); jbi->ids = g_slist_prepend(jbi->ids, g_strdup(iq->id));
--- a/libpurple/protocols/jabber/caps.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/caps.c Sat Nov 28 02:22:49 2009 +0000 @@ -440,7 +440,7 @@ const char *id, xmlnode *packet, gpointer data) { xmlnode *query = xmlnode_get_child_with_namespace(packet, "query", - "http://jabber.org/protocol/disco#info"); + NS_DISCO_INFO); jabber_caps_cbplususerdata *userdata = data; JabberCapsClientInfo *info = NULL, *value; JabberCapsTuple key; @@ -531,7 +531,7 @@ const char *id, xmlnode *packet, gpointer data) { xmlnode *query = xmlnode_get_child_with_namespace(packet, "query", - "http://jabber.org/protocol/disco#info"); + NS_DISCO_INFO); xmlnode *child; ext_iq_data *userdata = data; GList *features = NULL; @@ -638,10 +638,9 @@ xmlnode *query; char *nodever; - iq = jabber_iq_new_query(js, JABBER_IQ_GET, - "http://jabber.org/protocol/disco#info"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_DISCO_INFO); query = xmlnode_get_child_with_namespace(iq->node, "query", - "http://jabber.org/protocol/disco#info"); + NS_DISCO_INFO); nodever = g_strdup_printf("%s#%s", node, ver); xmlnode_set_attrib(query, "node", nodever); g_free(nodever); @@ -679,10 +678,9 @@ cbdata->name = exts[i]; cbdata->data = cbplususerdata_ref(userdata); - iq = jabber_iq_new_query(js, JABBER_IQ_GET, - "http://jabber.org/protocol/disco#info"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_DISCO_INFO); query = xmlnode_get_child_with_namespace(iq->node, "query", - "http://jabber.org/protocol/disco#info"); + NS_DISCO_INFO); nodeext = g_strdup_printf("%s#%s", node, exts[i]); xmlnode_set_attrib(query, "node", nodeext); g_free(nodeext); @@ -771,7 +769,7 @@ xmlnode *child; JabberCapsClientInfo *info; - if (!query || strcmp(query->xmlns, "http://jabber.org/protocol/disco#info")) + if (!query || strcmp(query->xmlns, NS_DISCO_INFO)) return 0; info = g_new0(JabberCapsClientInfo, 1);
--- a/libpurple/protocols/jabber/chat.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/chat.c Sat Nov 28 02:22:49 2009 +0000 @@ -825,7 +825,7 @@ purple_roomlist_set_in_progress(js->roomlist, TRUE); - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#items"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_DISCO_ITEMS); xmlnode_set_attrib(iq->node, "to", server); @@ -1201,7 +1201,7 @@ for(x = xmlnode_get_child(query, "feature"); x; x = xmlnode_get_next_twin(x)) { const char *var = xmlnode_get_attrib(x, "var"); - if(var && !strcmp(var, "http://jabber.org/protocol/xhtml-im")) { + if(var && !strcmp(var, NS_XHTML_IM)) { chat->xhtml = TRUE; } } @@ -1216,8 +1216,7 @@ room_jid = g_strdup_printf("%s@%s", chat->room, chat->server); - iq = jabber_iq_new_query(chat->js, JABBER_IQ_GET, - "http://jabber.org/protocol/disco#info"); + iq = jabber_iq_new_query(chat->js, JABBER_IQ_GET, NS_DISCO_INFO); xmlnode_set_attrib(iq->node, "to", room_jid);
--- a/libpurple/protocols/jabber/data.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/data.c Sat Nov 28 02:22:49 2009 +0000 @@ -18,11 +18,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" + #include <stdlib.h> #include <glib.h> #include <string.h> -#include "internal.h" #include "data.h" #include "debug.h" #include "xmlnode.h" @@ -140,7 +141,7 @@ xmlnode *tag = xmlnode_new("data"); char *base64data = purple_base64_encode(data->data, data->size); - xmlnode_set_namespace(tag, XEP_0231_NAMESPACE); + xmlnode_set_namespace(tag, NS_BOB); xmlnode_set_attrib(tag, "cid", data->cid); xmlnode_set_attrib(tag, "type", data->type); @@ -169,7 +170,7 @@ { xmlnode *tag = xmlnode_new("data"); - xmlnode_set_namespace(tag, XEP_0231_NAMESPACE); + xmlnode_set_namespace(tag, NS_BOB); xmlnode_set_attrib(tag, "cid", cid); return tag; @@ -254,7 +255,7 @@ remote_data_by_cid = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, jabber_data_delete); - jabber_iq_register_handler("data", XEP_0231_NAMESPACE, jabber_data_parse); + jabber_iq_register_handler("data", NS_BOB, jabber_data_parse); } void
--- a/libpurple/protocols/jabber/data.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/data.h Sat Nov 28 02:22:49 2009 +0000 @@ -24,8 +24,6 @@ #include "xmlnode.h" #include "jabber.h" -#define XEP_0231_NAMESPACE "urn:xmpp:bob" - #include <glib.h> typedef struct {
--- a/libpurple/protocols/jabber/disco.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/disco.c Sat Nov 28 02:22:49 2009 +0000 @@ -60,7 +60,7 @@ { JabberBytestreamsStreamhost *sh = data; xmlnode *query = xmlnode_get_child_with_namespace(packet, "query", - "http://jabber.org/protocol/bytestreams"); + NS_BYTESTREAMS); if (from && !strcmp(from, sh->jid) && query != NULL) { xmlnode *sh_node = xmlnode_get_child(query, "streamhost"); @@ -109,8 +109,7 @@ /* create custom caps node URI */ node_uri = g_strconcat(CAPS0115_NODE, "#", jabber_caps_get_own_hash(js), NULL); - iq = jabber_iq_new_query(js, JABBER_IQ_RESULT, - "http://jabber.org/protocol/disco#info"); + iq = jabber_iq_new_query(js, JABBER_IQ_RESULT, NS_DISCO_INFO); jabber_iq_set_id(iq, id); @@ -152,7 +151,7 @@ * advertises as 'voice-v1'. */ xmlnode *feature = xmlnode_new_child(query, "feature"); - xmlnode_set_attrib(feature, "var", "http://www.google.com/xmpp/protocol/voice/v1"); + xmlnode_set_attrib(feature, "var", NS_GOOGLE_VOICE); } else if (g_str_equal(node, CAPS0115_NODE "#" "video-v1")) { /* * HUGE HACK! We advertise this ext (see jabber_presence_create_js @@ -164,7 +163,7 @@ * advertises as 'video-v1'. */ xmlnode *feature = xmlnode_new_child(query, "feature"); - xmlnode_set_attrib(feature, "var", "http://www.google.com/xmpp/protocol/video/v1"); + xmlnode_set_attrib(feature, "var", NS_GOOGLE_VIDEO); } else if (g_str_equal(node, CAPS0115_NODE "#" "camera-v1")) { /* * HUGE HACK! We advertise this ext (see jabber_presence_create_js @@ -176,7 +175,7 @@ * advertises as 'camera-v1'. */ xmlnode *feature = xmlnode_new_child(query, "feature"); - xmlnode_set_attrib(feature, "var", "http://www.google.com/xmpp/protocol/camera/v1"); + xmlnode_set_attrib(feature, "var", NS_GOOGLE_CAMERA); #endif } else { xmlnode *error, *inf; @@ -189,7 +188,7 @@ xmlnode_set_attrib(error, "code", "404"); xmlnode_set_attrib(error, "type", "cancel"); inf = xmlnode_new_child(error, "item-not-found"); - xmlnode_set_namespace(inf, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(inf, NS_XMPP_STANZAS); } g_free(node_uri); jabber_iq_send(iq); @@ -204,7 +203,7 @@ error = xmlnode_new_child(iq->node, "error"); xmlnode_set_attrib(error, "type", "modify"); bad_request = xmlnode_new_child(error, "bad-request"); - xmlnode_set_namespace(bad_request, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(bad_request, NS_XMPP_STANZAS); jabber_iq_set_id(iq, id); if (from) @@ -221,8 +220,7 @@ struct _jabber_disco_info_cb_data *jdicd = data; xmlnode *query; - query = xmlnode_get_child_with_namespace(packet, "query", - "http://jabber.org/protocol/disco#info"); + query = xmlnode_get_child_with_namespace(packet, "query", NS_DISCO_INFO); if (type == JABBER_IQ_RESULT && query) { xmlnode *child; @@ -257,7 +255,7 @@ } else if(!strcmp(category, "directory") && !strcmp(type, "user")) { /* we found a JUD */ js->user_directories = g_list_prepend(js->user_directories, g_strdup(from)); - } else if(!strcmp(category, "proxy") && !strcmp(type, "bytestreams")) { + } else if(!strcmp(category, "proxy") && !strcmp(type, NS_BYTESTREAMS)) { /* This is a bytestream proxy */ JabberIq *iq; JabberBytestreamsStreamhost *sh; @@ -269,7 +267,7 @@ js->bs_proxies = g_list_prepend(js->bs_proxies, sh); iq = jabber_iq_new_query(js, JABBER_IQ_GET, - "http://jabber.org/protocol/bytestreams"); + NS_BYTESTREAMS); xmlnode_set_attrib(iq->node, "to", sh->jid); jabber_iq_set_callback(iq, jabber_disco_bytestream_server_cb, sh); jabber_iq_send(iq); @@ -284,20 +282,20 @@ capabilities |= JABBER_CAP_SI; else if(!strcmp(var, "http://jabber.org/protocol/si/profile/file-transfer")) capabilities |= JABBER_CAP_SI_FILE_XFER; - else if(!strcmp(var, "http://jabber.org/protocol/bytestreams")) + else if(!strcmp(var, NS_BYTESTREAMS)) capabilities |= JABBER_CAP_BYTESTREAMS; else if(!strcmp(var, "jabber:iq:search")) capabilities |= JABBER_CAP_IQ_SEARCH; else if(!strcmp(var, "jabber:iq:register")) capabilities |= JABBER_CAP_IQ_REGISTER; - else if(!strcmp(var, "urn:xmpp:ping")) + else if(!strcmp(var, NS_PING)) capabilities |= JABBER_CAP_PING; - else if(!strcmp(var, "http://jabber.org/protocol/disco#items")) + else if(!strcmp(var, NS_DISCO_ITEMS)) capabilities |= JABBER_CAP_ITEMS; else if(!strcmp(var, "http://jabber.org/protocol/commands")) { capabilities |= JABBER_CAP_ADHOC; } - else if(!strcmp(var, "http://jabber.org/protocol/ibb")) { + else if(!strcmp(var, NS_IBB)) { purple_debug_info("jabber", "remote supports IBB\n"); capabilities |= JABBER_CAP_IBB; } @@ -341,7 +339,7 @@ { if(type == JABBER_IQ_GET) { JabberIq *iq = jabber_iq_new_query(js, JABBER_IQ_RESULT, - "http://jabber.org/protocol/disco#items"); + NS_DISCO_ITEMS); /* preserve node */ xmlnode *iq_query = xmlnode_get_child(iq->node, "query"); @@ -409,8 +407,7 @@ sh->jid = g_strdup(ft_proxy_list[i]); js->bs_proxies = g_list_prepend(js->bs_proxies, sh); - iq = jabber_iq_new_query(js, JABBER_IQ_GET, - "http://jabber.org/protocol/bytestreams"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_BYTESTREAMS); xmlnode_set_attrib(iq->node, "to", sh->jid); jabber_iq_set_callback(iq, jabber_disco_bytestream_server_cb, sh); jabber_iq_send(iq); @@ -555,7 +552,7 @@ if (!var) continue; - if (!strcmp("google:mail:notify", var)) { + if (!strcmp(NS_GOOGLE_MAIL_NOTIFY, var)) { js->server_caps |= JABBER_CAP_GMAIL_NOTIFY; jabber_gmail_init(js); } else if (!strcmp("google:roster", var)) { @@ -563,7 +560,7 @@ jabber_google_roster_init(js); } else if (!strcmp("http://jabber.org/protocol/commands", var)) { js->server_caps |= JABBER_CAP_ADHOC; - } else if (!strcmp("urn:xmpp:blocking", var)) { + } else if (!strcmp(NS_SIMPLE_BLOCKING, var)) { js->server_caps |= JABBER_CAP_BLOCKING; } } @@ -604,7 +601,7 @@ if((node = xmlnode_get_attrib(child, "node"))) continue; - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#info"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_DISCO_INFO); xmlnode_set_attrib(iq->node, "to", jid); jabber_iq_set_callback(iq, jabber_disco_info_cb, NULL); jabber_iq_send(iq); @@ -613,15 +610,14 @@ void jabber_disco_items_server(JabberStream *js) { - JabberIq *iq = jabber_iq_new_query(js, JABBER_IQ_GET, - "http://jabber.org/protocol/disco#items"); + JabberIq *iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_DISCO_ITEMS); xmlnode_set_attrib(iq->node, "to", js->user->domain); jabber_iq_set_callback(iq, jabber_disco_server_items_result_cb, NULL); jabber_iq_send(iq); - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#info"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_DISCO_INFO); xmlnode_set_attrib(iq->node, "to", js->user->domain); jabber_iq_set_callback(iq, jabber_disco_server_info_result_cb, NULL); jabber_iq_send(iq); @@ -650,7 +646,7 @@ jdicd->data = data; jdicd->callback = callback; - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#info"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_DISCO_INFO); xmlnode_set_attrib(iq->node, "to", who); jabber_iq_set_callback(iq, jabber_disco_info_cb, jdicd);
--- a/libpurple/protocols/jabber/google.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/google.c Sat Nov 28 02:22:49 2009 +0000 @@ -37,9 +37,6 @@ #ifdef USE_VV -#define NS_GOOGLE_VIDEO "http://www.google.com/session/video" -#define NS_GOOGLE_PHONE "http://www.google.com/session/phone" - typedef struct { char *id; char *initiator; @@ -84,7 +81,7 @@ google_session_create_xmlnode(GoogleSession *session, const char *type) { xmlnode *node = xmlnode_new("session"); - xmlnode_set_namespace(node, "http://www.google.com/session"); + xmlnode_set_namespace(node, NS_GOOGLE_SESSION); xmlnode_set_attrib(node, "id", session->id.id); xmlnode_set_attrib(node, "initiator", session->id.initiator); xmlnode_set_attrib(node, "type", type); @@ -213,9 +210,9 @@ xmlnode_insert_child(iq->node, sess); desc = xmlnode_new_child(sess, "description"); if (session->video) - xmlnode_set_namespace(desc, NS_GOOGLE_VIDEO); + xmlnode_set_namespace(desc, NS_GOOGLE_SESSION_VIDEO); else - xmlnode_set_namespace(desc, NS_GOOGLE_PHONE); + xmlnode_set_namespace(desc, NS_GOOGLE_SESSION_PHONE); codecs = purple_media_get_codecs(media, "google-video"); @@ -248,7 +245,7 @@ purple_media_codec_get_clock_rate(codec)); payload = xmlnode_new_child(desc, "payload-type"); if (session->video) - xmlnode_set_namespace(payload, NS_GOOGLE_PHONE); + xmlnode_set_namespace(payload, NS_GOOGLE_SESSION_PHONE); xmlnode_set_attrib(payload, "id", id); /* * Hack to make Gmail accept speex as the codec. @@ -439,9 +436,9 @@ desc_element = xmlnode_get_child(sess, "description"); xmlns = xmlnode_get_namespace(desc_element); - if (purple_strequal(xmlns, NS_GOOGLE_PHONE)) + if (purple_strequal(xmlns, NS_GOOGLE_SESSION_PHONE)) session->video = FALSE; - else if (purple_strequal(xmlns, NS_GOOGLE_VIDEO)) + else if (purple_strequal(xmlns, NS_GOOGLE_SESSION_VIDEO)) session->video = TRUE; else { purple_debug_error("jabber", "Received initiate with " @@ -498,7 +495,7 @@ id = xmlnode_get_attrib(codec_element, "id"); if (!session->video || - (xmlns && !strcmp(xmlns, NS_GOOGLE_PHONE))) { + (xmlns && !strcmp(xmlns, NS_GOOGLE_SESSION_PHONE))) { clock_rate = xmlnode_get_attrib( codec_element, "clockrate"); video = FALSE; @@ -623,7 +620,7 @@ GList *codecs = NULL, *video_codecs = NULL; JabberIq *result = NULL; const gchar *xmlns = xmlnode_get_namespace(desc_element); - gboolean video = (xmlns && !strcmp(xmlns, NS_GOOGLE_VIDEO)); + gboolean video = (xmlns && !strcmp(xmlns, NS_GOOGLE_SESSION_VIDEO)); for (; codec_element; codec_element = codec_element->next) { const gchar *xmlns, *encoding_name, *id, @@ -637,7 +634,7 @@ encoding_name = xmlnode_get_attrib(codec_element, "name"); id = xmlnode_get_attrib(codec_element, "id"); - if (!video || purple_strequal(xmlns, NS_GOOGLE_PHONE)) + if (!video || purple_strequal(xmlns, NS_GOOGLE_SESSION_PHONE)) clock_rate = xmlnode_get_attrib( codec_element, "clockrate"); else { @@ -913,7 +910,7 @@ purple_debug_misc("jabber", "Got new mail notification. Sending request for more info\n"); - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "google:mail:notify"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_GOOGLE_MAIL_NOTIFY); jabber_iq_set_callback(iq, jabber_gmail_parse, NULL); query = xmlnode_get_child(iq->node, "query"); @@ -947,7 +944,7 @@ xmlnode_set_attrib(mailnotifications, "value", "true"); jabber_iq_send(iq); - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "google:mail:notify"); + iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_GOOGLE_MAIL_NOTIFY); jabber_iq_set_callback(iq, jabber_gmail_parse, NULL); jabber_iq_send(iq); } @@ -1401,7 +1398,7 @@ xmlnode *packet, gpointer data) { xmlnode *query = xmlnode_get_child_with_namespace(packet, "query", - GOOGLE_JINGLE_INFO_NAMESPACE); + NS_GOOGLE_JINGLE_INFO); if (query) jabber_google_jingle_info_common(js, from, type, query); @@ -1421,7 +1418,7 @@ jabber_google_send_jingle_info(JabberStream *js) { JabberIq *jingle_info = - jabber_iq_new_query(js, JABBER_IQ_GET, GOOGLE_JINGLE_INFO_NAMESPACE); + jabber_iq_new_query(js, JABBER_IQ_GET, NS_GOOGLE_JINGLE_INFO); jabber_iq_set_callback(jingle_info, jabber_google_jingle_info_cb, NULL);
--- a/libpurple/protocols/jabber/google.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/google.h Sat Nov 28 02:22:49 2009 +0000 @@ -25,11 +25,6 @@ * such that they don't intermingle with code for the XMPP RFCs and XEPs :) */ #include "jabber.h" -#include "media.h" - -#define GOOGLE_VOICE_CAP "http://www.google.com/xmpp/protocol/voice/v1" -#define GOOGLE_VIDEO_CAP "http://www.google.com/xmpp/protocol/video/v1" -#define GOOGLE_JINGLE_INFO_NAMESPACE "google:jingleinfo" #define GOOGLE_GROUPCHAT_SERVER "groupchat.google.com"
--- a/libpurple/protocols/jabber/ibb.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/ibb.c Sat Nov 28 02:22:49 2009 +0000 @@ -228,7 +228,7 @@ gchar block_size[10]; xmlnode_set_attrib(set->node, "to", jabber_ibb_session_get_who(sess)); - xmlnode_set_namespace(open, XEP_0047_NAMESPACE); + xmlnode_set_namespace(open, NS_IBB); xmlnode_set_attrib(open, "sid", jabber_ibb_session_get_sid(sess)); g_snprintf(block_size, sizeof(block_size), "%" G_GSIZE_FORMAT, jabber_ibb_session_get_block_size(sess)); @@ -256,7 +256,7 @@ xmlnode *close = xmlnode_new("close"); xmlnode_set_attrib(set->node, "to", jabber_ibb_session_get_who(sess)); - xmlnode_set_namespace(close, XEP_0047_NAMESPACE); + xmlnode_set_namespace(close, NS_IBB); xmlnode_set_attrib(close, "sid", jabber_ibb_session_get_sid(sess)); xmlnode_insert_child(set->node, close); jabber_iq_send(set); @@ -333,7 +333,7 @@ g_snprintf(seq, sizeof(seq), "%u", jabber_ibb_session_get_send_seq(sess)); xmlnode_set_attrib(set->node, "to", jabber_ibb_session_get_who(sess)); - xmlnode_set_namespace(data_element, XEP_0047_NAMESPACE); + xmlnode_set_namespace(data_element, NS_IBB); xmlnode_set_attrib(data_element, "sid", jabber_ibb_session_get_sid(sess)); xmlnode_set_attrib(data_element, "seq", seq); xmlnode_insert_data(data_element, base64, -1); @@ -361,8 +361,7 @@ xmlnode *error = xmlnode_new("error"); xmlnode *item_not_found = xmlnode_new("item-not-found"); - xmlnode_set_namespace(item_not_found, - "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(item_not_found, NS_XMPP_STANZAS); xmlnode_set_attrib(error, "code", "440"); xmlnode_set_attrib(error, "type", "cancel"); jabber_iq_set_id(result, id); @@ -507,11 +506,11 @@ { jabber_ibb_sessions = g_hash_table_new(g_str_hash, g_str_equal); - jabber_add_feature(XEP_0047_NAMESPACE, NULL); + jabber_add_feature(NS_IBB, NULL); - jabber_iq_register_handler("close", XEP_0047_NAMESPACE, jabber_ibb_parse); - jabber_iq_register_handler("data", XEP_0047_NAMESPACE, jabber_ibb_parse); - jabber_iq_register_handler("open", XEP_0047_NAMESPACE, jabber_ibb_parse); + jabber_iq_register_handler("close", NS_IBB, jabber_ibb_parse); + jabber_iq_register_handler("data", NS_IBB, jabber_ibb_parse); + jabber_iq_register_handler("open", NS_IBB, jabber_ibb_parse); } void
--- a/libpurple/protocols/jabber/ibb.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/ibb.h Sat Nov 28 02:22:49 2009 +0000 @@ -24,8 +24,6 @@ #include "jabber.h" #include "iq.h" -#define XEP_0047_NAMESPACE "http://jabber.org/protocol/ibb" - typedef struct _JabberIBBSession JabberIBBSession; typedef void
--- a/libpurple/protocols/jabber/iq.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/iq.c Sat Nov 28 02:22:49 2009 +0000 @@ -155,7 +155,7 @@ char *idle_time; if(type == JABBER_IQ_GET) { - iq = jabber_iq_new_query(js, JABBER_IQ_RESULT, "jabber:iq:last"); + iq = jabber_iq_new_query(js, JABBER_IQ_RESULT, NS_LAST_ACTIVITY); jabber_iq_set_id(iq, id); if (from) xmlnode_set_attrib(iq->node, "to", from); @@ -190,7 +190,7 @@ xmlnode_set_attrib(iq->node, "to", from); child = xmlnode_new_child(iq->node, child->name); - xmlnode_set_namespace(child, "urn:xmpp:time"); + xmlnode_set_namespace(child, NS_ENTITY_TIME); /* <tzo>-06:00</tzo> */ tm = localtime(&now_t); @@ -332,7 +332,7 @@ error = xmlnode_new_child(iq->node, "error"); xmlnode_set_attrib(error, "type", "modify"); x = xmlnode_new_child(error, "bad-request"); - xmlnode_set_namespace(x, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(x, NS_XMPP_STANZAS); jabber_iq_send(iq); } else @@ -397,7 +397,7 @@ xmlnode_set_attrib(error, "type", "cancel"); xmlnode_set_attrib(error, "code", "501"); x = xmlnode_new_child(error, "feature-not-implemented"); - xmlnode_set_namespace(x, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(x, NS_XMPP_STANZAS); jabber_iq_send(iq); } @@ -458,21 +458,19 @@ signal_iq_handlers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); jabber_iq_register_handler("jingle", JINGLE, jingle_parse); - jabber_iq_register_handler("mailbox", "google:mail:notify", + jabber_iq_register_handler("mailbox", NS_GOOGLE_MAIL_NOTIFY, jabber_gmail_poke); - jabber_iq_register_handler("new-mail", "google:mail:notify", + jabber_iq_register_handler("new-mail", NS_GOOGLE_MAIL_NOTIFY, jabber_gmail_poke); - jabber_iq_register_handler("ping", "urn:xmpp:ping", jabber_ping_parse); - jabber_iq_register_handler("query", GOOGLE_JINGLE_INFO_NAMESPACE, + jabber_iq_register_handler("ping", NS_PING, jabber_ping_parse); + jabber_iq_register_handler("query", NS_GOOGLE_JINGLE_INFO, jabber_google_handle_jingle_info); - jabber_iq_register_handler("query", "http://jabber.org/protocol/bytestreams", + jabber_iq_register_handler("query", NS_BYTESTREAMS, jabber_bytestreams_parse); - jabber_iq_register_handler("query", "http://jabber.org/protocol/disco#info", - jabber_disco_info_parse); - jabber_iq_register_handler("query", "http://jabber.org/protocol/disco#items", - jabber_disco_items_parse); - jabber_iq_register_handler("query", "jabber:iq:last", jabber_iq_last_parse); - jabber_iq_register_handler("query", "jabber:iq:oob", jabber_oob_parse); + jabber_iq_register_handler("query", NS_DISCO_INFO, jabber_disco_info_parse); + jabber_iq_register_handler("query", NS_DISCO_ITEMS, jabber_disco_items_parse); + jabber_iq_register_handler("query", NS_LAST_ACTIVITY, jabber_iq_last_parse); + jabber_iq_register_handler("query", NS_OOB_IQ_DATA, jabber_oob_parse); jabber_iq_register_handler("query", "jabber:iq:register", jabber_register_parse); jabber_iq_register_handler("query", "jabber:iq:roster", @@ -480,12 +478,12 @@ jabber_iq_register_handler("query", "jabber:iq:version", jabber_iq_version_parse); #ifdef USE_VV - jabber_iq_register_handler("session", "http://www.google.com/session", + jabber_iq_register_handler("session", NS_GOOGLE_SESSION, jabber_google_session_parse); #endif - jabber_iq_register_handler("block", "urn:xmpp:blocking", jabber_blocklist_parse_push); - jabber_iq_register_handler("unblock", "urn:xmpp:blocking", jabber_blocklist_parse_push); - jabber_iq_register_handler("time", "urn:xmpp:time", jabber_time_parse); + jabber_iq_register_handler("block", NS_SIMPLE_BLOCKING, jabber_blocklist_parse_push); + jabber_iq_register_handler("unblock", NS_SIMPLE_BLOCKING, jabber_blocklist_parse_push); + jabber_iq_register_handler("time", NS_ENTITY_TIME, jabber_time_parse); }
--- a/libpurple/protocols/jabber/jabber.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Sat Nov 28 02:22:49 2009 +0000 @@ -81,8 +81,8 @@ char *open_stream; open_stream = g_strdup_printf("<stream:stream to='%s' " - "xmlns='jabber:client' " - "xmlns:stream='http://etherx.jabber.org/streams' " + "xmlns='" NS_XMPP_CLIENT "' " + "xmlns:stream='" NS_XMPP_STREAMS "' " "version='1.0'>", js->user->domain); /* setup the parser fresh for each stream */ @@ -116,7 +116,7 @@ jabber_iq_set_callback(iq, jabber_session_initialized_cb, NULL); session = xmlnode_new_child(iq->node, "session"); - xmlnode_set_namespace(session, "urn:ietf:params:xml:ns:xmpp-session"); + xmlnode_set_namespace(session, NS_XMPP_SESSION); jabber_iq_send(iq); } @@ -128,7 +128,7 @@ xmlnode *bind; if (type == JABBER_IQ_RESULT && - (bind = xmlnode_get_child_with_namespace(packet, "bind", "urn:ietf:params:xml:ns:xmpp-bind"))) { + (bind = xmlnode_get_child_with_namespace(packet, "bind", NS_XMPP_BIND))) { xmlnode *jid; char *full_jid; if((jid = xmlnode_get_child(bind, "jid")) && (full_jid = xmlnode_get_data(jid))) { @@ -217,7 +217,7 @@ char *requested_resource; JabberIq *iq = jabber_iq_new(js, JABBER_IQ_SET); bind = xmlnode_new_child(iq->node, "bind"); - xmlnode_set_namespace(bind, "urn:ietf:params:xml:ns:xmpp-bind"); + xmlnode_set_namespace(bind, NS_XMPP_BIND); requested_resource = jabber_prep_resource(js->user->resource); if (requested_resource != NULL) { @@ -272,11 +272,11 @@ } else if(!strcmp((*packet)->name, "stream:features")) { jabber_stream_features_parse(js, *packet); } else if (!strcmp((*packet)->name, "features") && xmlns && - !strcmp(xmlns, "http://etherx.jabber.org/streams")) { + !strcmp(xmlns, NS_XMPP_STREAMS)) { jabber_stream_features_parse(js, *packet); } else if(!strcmp((*packet)->name, "stream:error") || (!strcmp((*packet)->name, "error") && xmlns && - !strcmp(xmlns, "http://etherx.jabber.org/streams"))) + !strcmp(xmlns, NS_XMPP_STREAMS))) { jabber_stream_handle_error(js, *packet); } else if(!strcmp((*packet)->name, "challenge")) { @@ -385,7 +385,7 @@ if(js->state != JABBER_STREAM_CONNECTED && /* Either <auth> or <query><password>... */ (((tag_start = strstr(data, "<auth ")) && - strstr(data, "xmlns='urn:ietf:params:xml:ns:xmpp-sasl'")) || + strstr(data, "xmlns='" NS_XMPP_SASL "'")) || ((tag_start = strstr(data, "<query ")) && strstr(data, "xmlns='jabber:iq:auth'>") && (tag_start = strstr(tag_start, "<password>"))))) { @@ -476,12 +476,19 @@ if (NULL == packet) return; + if (!PURPLE_CONNECTION_IS_VALID(pc)) + return; + js = purple_connection_get_protocol_data(pc); + + if (NULL == js) + return; + if (js->bosh) if (g_str_equal((*packet)->name, "message") || g_str_equal((*packet)->name, "iq") || g_str_equal((*packet)->name, "presence")) - xmlnode_set_namespace(*packet, "jabber:client"); + xmlnode_set_namespace(*packet, NS_XMPP_CLIENT); txt = xmlnode_to_str(*packet, &len); jabber_send_raw(js, txt, len); g_free(txt); @@ -1206,7 +1213,7 @@ jabber_x_data_request(js, x, jabber_register_x_data_cb, g_strdup(from)); return; - } else if((x = xmlnode_get_child_with_namespace(query, "x", "jabber:x:oob"))) { + } else if((x = xmlnode_get_child_with_namespace(query, "x", NS_OOB_X_DATA))) { xmlnode *url; if((url = xmlnode_get_child(x, "url"))) { @@ -1635,7 +1642,7 @@ error = xmlnode_new_child(result->node, "error"); xmlnode_set_attrib(error, "type", "cancel"); x = xmlnode_new_child(error, "not-allowed"); - xmlnode_set_namespace(x, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(x, NS_XMPP_STANZAS); jabber_iq_send(result); return; @@ -1661,7 +1668,7 @@ error = xmlnode_new_child(result->node, "error"); xmlnode_set_attrib(error, "type", "modify"); x = xmlnode_new_child(error, "bad-request"); - xmlnode_set_namespace(x, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(x, NS_XMPP_STANZAS); jabber_iq_send(result); return; @@ -1691,7 +1698,7 @@ PurpleAccount *account; blocklist = xmlnode_get_child_with_namespace(packet, - "blocklist", "urn:xmpp:blocking"); + "blocklist", NS_SIMPLE_BLOCKING); account = purple_connection_get_account(js->gc); if (type == JABBER_IQ_ERROR || blocklist == NULL) @@ -1724,7 +1731,7 @@ iq = jabber_iq_new(js, JABBER_IQ_GET); blocklist = xmlnode_new_child(iq->node, "blocklist"); - xmlnode_set_namespace(blocklist, "urn:xmpp:blocking"); + xmlnode_set_namespace(blocklist, NS_SIMPLE_BLOCKING); jabber_iq_set_callback(iq, jabber_blocklist_parse, NULL); @@ -1757,7 +1764,7 @@ iq = jabber_iq_new(js, JABBER_IQ_SET); block = xmlnode_new_child(iq->node, "block"); - xmlnode_set_namespace(block, "urn:xmpp:blocking"); + xmlnode_set_namespace(block, NS_SIMPLE_BLOCKING); item = xmlnode_new_child(block, "item"); xmlnode_set_attrib(item, "jid", who); @@ -1787,7 +1794,7 @@ iq = jabber_iq_new(js, JABBER_IQ_SET); unblock = xmlnode_new_child(iq->node, "unblock"); - xmlnode_set_namespace(unblock, "urn:xmpp:blocking"); + xmlnode_set_namespace(unblock, NS_SIMPLE_BLOCKING); item = xmlnode_new_child(unblock, "item"); xmlnode_set_attrib(item, "jid", who); @@ -2451,7 +2458,7 @@ } else if(xmlnode_get_child(error, "undefined-condition")) { text = _("Unknown Error"); } - } else if(xmlns && !strcmp(xmlns, "urn:ietf:params:xml:ns:xmpp-sasl")) { + } else if(xmlns && !strcmp(xmlns, NS_XMPP_SASL)) { /* Most common reason can be the default */ SET_REASON(PURPLE_CONNECTION_ERROR_NETWORK_ERROR); if(xmlnode_get_child(packet, "aborted")) { @@ -2479,7 +2486,7 @@ } } else if(!strcmp(packet->name, "stream:error") || (!strcmp(packet->name, "error") && xmlns && - !strcmp(xmlns, "http://etherx.jabber.org/streams"))) { + !strcmp(xmlns, NS_XMPP_STREAMS))) { /* Most common reason as default: */ SET_REASON(PURPLE_CONNECTION_ERROR_NETWORK_ERROR); if(xmlnode_get_child(packet, "bad-format")) { @@ -2835,7 +2842,7 @@ return FALSE; } - if (jabber_resource_has_capability(jbr, XEP_0224_NAMESPACE)) { + if (jabber_resource_has_capability(jbr, NS_ATTENTION)) { xmlnode *buzz, *msg = xmlnode_new("message"); gchar *to; @@ -2847,7 +2854,7 @@ xmlnode_set_attrib(msg, "type", "headline"); buzz = xmlnode_new_child(msg, "attention"); - xmlnode_set_namespace(buzz, XEP_0224_NAMESPACE); + xmlnode_set_namespace(buzz, NS_ATTENTION); jabber_send(js, msg); xmlnode_free(msg); @@ -3008,8 +3015,7 @@ if (type & PURPLE_MEDIA_AUDIO && !jabber_resource_has_capability(jbr, JINGLE_APP_RTP_SUPPORT_AUDIO) && - jabber_resource_has_capability(jbr, - GOOGLE_VOICE_CAP)) + jabber_resource_has_capability(jbr, NS_GOOGLE_VOICE)) return jabber_google_session_initiate(js, who, type); else return jingle_rtp_initiate_media(js, who, type); @@ -3178,10 +3184,9 @@ caps |= PURPLE_MEDIA_CAPS_MODIFY_SESSION | PURPLE_MEDIA_CAPS_CHANGE_DIRECTION; } - if (jabber_resource_has_capability(jbr, GOOGLE_VOICE_CAP)) { + if (jabber_resource_has_capability(jbr, NS_GOOGLE_VOICE)) { caps |= PURPLE_MEDIA_CAPS_AUDIO; - if (jabber_resource_has_capability(jbr, - GOOGLE_VIDEO_CAP)) + if (jabber_resource_has_capability(jbr, NS_GOOGLE_VIDEO)) caps |= PURPLE_MEDIA_CAPS_AUDIO_VIDEO; } return caps; @@ -3258,9 +3263,8 @@ if (jabber_resource_has_capability(jbr, "http://jabber.org/protocol/si/profile/file-transfer") && (jabber_resource_has_capability(jbr, - "http://jabber.org/protocol/bytestreams") - || jabber_resource_has_capability(jbr, - XEP_0047_NAMESPACE))) { + NS_BYTESTREAMS) + || jabber_resource_has_capability(jbr, NS_IBB))) { return TRUE; } } @@ -3471,38 +3475,38 @@ jabber_add_identity("client", type, NULL, ui_name); /* initialize jabber_features list */ - jabber_add_feature("jabber:iq:last", 0); - jabber_add_feature("jabber:iq:oob", 0); - jabber_add_feature("urn:xmpp:time", 0); + jabber_add_feature(NS_LAST_ACTIVITY, 0); + jabber_add_feature(NS_OOB_IQ_DATA, 0); + jabber_add_feature(NS_ENTITY_TIME, 0); jabber_add_feature("jabber:iq:version", 0); jabber_add_feature("jabber:x:conference", 0); - jabber_add_feature("http://jabber.org/protocol/bytestreams", 0); + jabber_add_feature(NS_BYTESTREAMS, 0); jabber_add_feature("http://jabber.org/protocol/caps", 0); jabber_add_feature("http://jabber.org/protocol/chatstates", 0); - jabber_add_feature("http://jabber.org/protocol/disco#info", 0); - jabber_add_feature("http://jabber.org/protocol/disco#items", 0); - jabber_add_feature("http://jabber.org/protocol/ibb", 0); + jabber_add_feature(NS_DISCO_INFO, 0); + jabber_add_feature(NS_DISCO_ITEMS, 0); + jabber_add_feature(NS_IBB, 0); jabber_add_feature("http://jabber.org/protocol/muc", 0); jabber_add_feature("http://jabber.org/protocol/muc#user", 0); jabber_add_feature("http://jabber.org/protocol/si", 0); jabber_add_feature("http://jabber.org/protocol/si/profile/file-transfer", 0); - jabber_add_feature("http://jabber.org/protocol/xhtml-im", 0); - jabber_add_feature("urn:xmpp:ping", 0); + jabber_add_feature(NS_XHTML_IM, 0); + jabber_add_feature(NS_PING, 0); /* Buzz/Attention */ - jabber_add_feature(XEP_0224_NAMESPACE, jabber_buzz_isenabled); + jabber_add_feature(NS_ATTENTION, jabber_buzz_isenabled); /* Bits Of Binary */ - jabber_add_feature(XEP_0231_NAMESPACE, 0); + jabber_add_feature(NS_BOB, 0); /* Jingle features! */ jabber_add_feature(JINGLE, 0); #ifdef USE_VV - jabber_add_feature("http://www.google.com/xmpp/protocol/session", jabber_audio_enabled); - jabber_add_feature("http://www.google.com/xmpp/protocol/voice/v1", jabber_audio_enabled); - jabber_add_feature("http://www.google.com/xmpp/protocol/video/v1", jabber_video_enabled); - jabber_add_feature("http://www.google.com/xmpp/protocol/camera/v1", jabber_video_enabled); + jabber_add_feature(NS_GOOGLE_PROTOCOL_SESSION, jabber_audio_enabled); + jabber_add_feature(NS_GOOGLE_VOICE, jabber_audio_enabled); + jabber_add_feature(NS_GOOGLE_VIDEO, jabber_video_enabled); + jabber_add_feature(NS_GOOGLE_CAMERA, jabber_video_enabled); jabber_add_feature(JINGLE_APP_RTP, 0); jabber_add_feature(JINGLE_APP_RTP_SUPPORT_AUDIO, jabber_audio_enabled); jabber_add_feature(JINGLE_APP_RTP_SUPPORT_VIDEO, jabber_video_enabled);
--- a/libpurple/protocols/jabber/jabber.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.h Sat Nov 28 02:22:49 2009 +0000 @@ -64,6 +64,8 @@ #include "roomlist.h" #include "sslconn.h" +#include "namespaces.h" + #include "iq.h" #include "jutil.h" #include "xmlnode.h"
--- a/libpurple/protocols/jabber/jingle/session.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/session.c Sat Nov 28 02:22:49 2009 +0000 @@ -360,11 +360,15 @@ JingleSession * jingle_session_find_by_sid(JabberStream *js, const gchar *sid) { + JingleSession *session = NULL; + + if (js->sessions) + session = g_hash_table_lookup(js->sessions, sid); + purple_debug_info("jingle", "find_by_id %s\n", sid); - purple_debug_info("jingle", "lookup: %p\n", (js->sessions) ? - g_hash_table_lookup(js->sessions, sid) : NULL); - return (JingleSession *) (js->sessions) ? - g_hash_table_lookup(js->sessions, sid) : NULL; + purple_debug_info("jingle", "lookup: %p\n", session); + + return session; } static gboolean find_by_jid_ghr(gpointer key,
--- a/libpurple/protocols/jabber/message.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/message.c Sat Nov 28 02:22:49 2009 +0000 @@ -178,7 +178,7 @@ for(etc = jm->etc; etc; etc = etc->next) { xmlnode *x = etc->data; const char *xmlns = xmlnode_get_namespace(x); - if(xmlns && !strcmp(xmlns, "jabber:x:oob")) { + if(xmlns && !strcmp(xmlns, NS_OOB_X_DATA)) { xmlnode *url, *desc; char *urltxt, *desctxt; @@ -460,7 +460,7 @@ jabber_message_add_remote_smileys(const xmlnode *message) { xmlnode *data_tag; - for (data_tag = xmlnode_get_child_with_namespace(message, "data", XEP_0231_NAMESPACE) ; + for (data_tag = xmlnode_get_child_with_namespace(message, "data", NS_BOB) ; data_tag ; data_tag = xmlnode_get_next_twin(data_tag)) { const gchar *cid = xmlnode_get_attrib(data_tag, "cid"); @@ -611,22 +611,22 @@ jm->etc = g_list_append(jm->etc, child); /* The following tests expect xmlns != NULL */ continue; - } else if(!strcmp(child->name, "subject") && !strcmp(xmlns,"jabber:client")) { + } else if(!strcmp(child->name, "subject") && !strcmp(xmlns, NS_XMPP_CLIENT)) { if(!jm->subject) { jm->subject = xmlnode_get_data(child); if(!jm->subject) jm->subject = g_strdup(""); } - } else if(!strcmp(child->name, "thread") && !strcmp(xmlns,"jabber:client")) { + } else if(!strcmp(child->name, "thread") && !strcmp(xmlns, NS_XMPP_CLIENT)) { if(!jm->thread_id) jm->thread_id = xmlnode_get_data(child); - } else if(!strcmp(child->name, "body") && !strcmp(xmlns,"jabber:client")) { + } else if(!strcmp(child->name, "body") && !strcmp(xmlns, NS_XMPP_CLIENT)) { if(!jm->body) { char *msg = xmlnode_to_str(child, NULL); jm->body = purple_strdup_withhtml(msg); g_free(msg); } - } else if(!strcmp(child->name, "html") && !strcmp(xmlns,"http://jabber.org/protocol/xhtml-im")) { + } else if(!strcmp(child->name, "html") && !strcmp(xmlns, NS_XHTML_IM)) { if(!jm->xhtml && xmlnode_get_child(child, "body")) { char *c; @@ -740,7 +740,7 @@ jm->type = JABBER_MESSAGE_EVENT; for(items = xmlnode_get_child(child,"items"); items; items = items->next) jm->eventitems = g_list_append(jm->eventitems, items); - } else if(!strcmp(child->name, "attention") && !strcmp(xmlns, XEP_0224_NAMESPACE)) { + } else if(!strcmp(child->name, "attention") && !strcmp(xmlns, NS_ATTENTION)) { jm->hasBuzz = TRUE; } else if(!strcmp(child->name, "delay") && !strcmp(xmlns,"urn:xmpp:delay")) { const char *timestamp = xmlnode_get_attrib(child, "stamp"); @@ -800,7 +800,7 @@ } } else if (g_str_equal(child->name, "query")) { const char *node = xmlnode_get_attrib(child, "node"); - if (purple_strequal(xmlns, "http://jabber.org/protocol/disco#items") + if (purple_strequal(xmlns, NS_DISCO_ITEMS) && purple_strequal(node, "http://jabber.org/protocol/commands")) { jabber_adhoc_got_list(js, jm->from, child); } @@ -946,7 +946,7 @@ case PURPLE_CONV_TYPE_IM: jb = jabber_buddy_find(js, who, FALSE); if (jb) { - return jabber_buddy_has_capability(jb, XEP_0231_NAMESPACE); + return jabber_buddy_has_capability(jb, NS_BOB); } else { return FALSE; } @@ -958,7 +958,7 @@ 10 people, to avoid getting too many BoB requests */ return jabber_chat_get_num_participants(chat) <= 10 && jabber_chat_all_participants_have_capability(chat, - XEP_0231_NAMESPACE); + NS_BOB); } else { return FALSE; } @@ -1204,9 +1204,9 @@ * the user's roster, allow sending XHTML-IM markup. */ if (!jbr || !jbr->caps.info || - jabber_resource_has_capability(jbr, "http://jabber.org/protocol/xhtml-im")) { + jabber_resource_has_capability(jbr, NS_XHTML_IM)) { if (!jabber_xhtml_plain_equal(xhtml, jm->body)) - jm->xhtml = g_strdup_printf("<html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns='http://www.w3.org/1999/xhtml'>%s</body></html>", xhtml); + jm->xhtml = g_strdup_printf("<html xmlns='" NS_XHTML_IM "'><body xmlns='" NS_XHTML "'>%s</body></html>", xhtml); } g_free(xhtml); @@ -1249,7 +1249,7 @@ } if (chat->xhtml && !jabber_xhtml_plain_equal(xhtml, jm->body)) - jm->xhtml = g_strdup_printf("<html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns='http://www.w3.org/1999/xhtml'>%s</body></html>", xhtml); + jm->xhtml = g_strdup_printf("<html xmlns='" NS_XHTML_IM "'><body xmlns='" NS_XHTML "'>%s</body></html>", xhtml); g_free(xhtml);
--- a/libpurple/protocols/jabber/message.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/message.h Sat Nov 28 02:22:49 2009 +0000 @@ -28,8 +28,6 @@ #include "jabber.h" #include "xmlnode.h" -#define XEP_0224_NAMESPACE "urn:xmpp:attention:0" - typedef struct _JabberMessage { JabberStream *js; enum {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/protocols/jabber/namespaces.h Sat Nov 28 02:22:49 2009 +0000 @@ -0,0 +1,91 @@ +/* + * purple - Jabber Protocol Plugin + * + * 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 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 + * + */ + +#ifndef PURPLE_JABBER_NAMESPACES_H_ +#define PURPLE_JABBER_NAMESPACES_H_ + +#define NS_XMPP_BIND "urn:ietf:params:xml:ns:xmpp-bind" +#define NS_XMPP_CLIENT "jabber:client" +#define NS_XMPP_SASL "urn:ietf:params:xml:ns:xmpp-sasl" +#define NS_XMPP_SESSION "urn:ietf:params:xml:ns:xmpp-session" +#define NS_XMPP_STANZAS "urn:ietf:params:xml:ns:xmpp-stanzas" +#define NS_XMPP_STREAMS "http://etherx.jabber.org/streams" + +/* XEP-0012 Last Activity (and XEP-0256 Last Activity in Presence) */ +#define NS_LAST_ACTIVITY "jabber:iq:last" + +/* XEP-0030 Service Discovery */ +#define NS_DISCO_INFO "http://jabber.org/protocol/disco#info" +#define NS_DISCO_ITEMS "http://jabber.org/protocol/disco#items" + +/* XEP-0047 IBB (In-band bytestreams) */ +#define NS_IBB "http://jabber.org/protocol/ibb" + +/* XEP-0065 SOCKS5 Bytestreams */ +#define NS_BYTESTREAMS "http://jabber.org/protocol/bytestreams" + +/* XEP-0066 Out of Band Data (OOB) */ +#define NS_OOB_IQ_DATA "jabber:iq:oob" +#define NS_OOB_X_DATA "jabber:x:oob" + +/* XEP-0071 XHTML-IM (rich-text messages) */ +#define NS_XHTML_IM "http://jabber.org/protocol/xhtml-im" +#define NS_XHTML "http://www.w3.org/1999/xhtml" + +/* XEP-0084 v0.12 User Avatar */ +#define NS_AVATAR_0_12_DATA "http://www.xmpp.org/extensions/xep-0084.html#ns-data" +#define NS_AVATAR_0_12_METADATA "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata" + +/* XEP-0084 v1.1 User Avatar */ +#define NS_AVATAR_1_1_DATA "urn:xmpp:avatar:data" +#define NS_AVATAR_1_1_METADATA "urn:xmpp:avatar:metadata" + +/* XEP-0191 Simple Communications Blocking */ +#define NS_SIMPLE_BLOCKING "urn:xmpp:blocking" + +/* XEP-0199 Ping */ +#define NS_PING "urn:xmpp:ping" + +/* XEP-0202 Entity Time */ +#define NS_ENTITY_TIME "urn:xmpp:time" + +/* XEP-0224 Attention */ +#define NS_ATTENTION "urn:xmpp:attention:0" + +/* XEP-0231 BoB (Bits of Binary) */ +#define NS_BOB "urn:xmpp:bob" + +/* Google extensions */ +#define NS_GOOGLE_CAMERA "http://www.google.com/xmpp/protocol/camera/v1" +#define NS_GOOGLE_VIDEO "http://www.google.com/xmpp/protocol/video/v1" +#define NS_GOOGLE_VOICE "http://www.google.com/xmpp/protocol/voice/v1" +#define NS_GOOGLE_JINGLE_INFO "google:jingleinfo" + +#define NS_GOOGLE_MAIL_NOTIFY "google:mail:notify" + +#define NS_GOOGLE_PROTOCOL_SESSION "http://www.google.com/xmpp/protocol/session" +#define NS_GOOGLE_SESSION "http://www.google.com/session" +#define NS_GOOGLE_SESSION_PHONE "http://www.google.com/session/phone" +#define NS_GOOGLE_SESSION_VIDEO "http://www.google.com/session/video" + +#endif /* PURPLE_JABBER_NAMESPACES_H_ */
--- a/libpurple/protocols/jabber/oob.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/oob.c Sat Nov 28 02:22:49 2009 +0000 @@ -170,11 +170,11 @@ if(!strcmp(code, "406")) { z = xmlnode_new_child(y, "not-acceptable"); xmlnode_set_attrib(y, "type", "modify"); - xmlnode_set_namespace(z, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(z, NS_XMPP_STANZAS); } else if(!strcmp(code, "404")) { z = xmlnode_new_child(y, "not-found"); xmlnode_set_attrib(y, "type", "cancel"); - xmlnode_set_namespace(z, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(z, NS_XMPP_STANZAS); } jabber_iq_send(iq);
--- a/libpurple/protocols/jabber/ping.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/ping.c Sat Nov 28 02:22:49 2009 +0000 @@ -74,7 +74,7 @@ iq = jabber_iq_new(js, JABBER_IQ_GET); ping = xmlnode_new_child(iq->node, "ping"); - xmlnode_set_namespace(ping, "urn:xmpp:ping"); + xmlnode_set_namespace(ping, NS_PING); jabber_iq_set_callback(iq, jabber_keepalive_pong_cb, NULL); jabber_iq_send(iq); @@ -90,7 +90,7 @@ xmlnode_set_attrib(iq->node, "to", jid); ping = xmlnode_new_child(iq->node, "ping"); - xmlnode_set_namespace(ping, "urn:xmpp:ping"); + xmlnode_set_namespace(ping, NS_PING); jabber_iq_set_callback(iq, jabber_ping_result_cb, NULL); jabber_iq_send(iq);
--- a/libpurple/protocols/jabber/presence.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/presence.c Sat Nov 28 02:22:49 2009 +0000 @@ -297,7 +297,7 @@ gchar seconds[10]; g_snprintf(seconds, 10, "%d", (int) (time(NULL) - js->idle)); - xmlnode_set_namespace(query, "jabber:iq:last"); + xmlnode_set_namespace(query, NS_LAST_ACTIVITY); xmlnode_set_attrib(query, "seconds", seconds); } @@ -466,8 +466,8 @@ goto out; if (!jbr->commands_fetched && jabber_resource_has_capability(jbr, "http://jabber.org/protocol/commands")) { - JabberIq *iq = jabber_iq_new_query(userdata->js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#items"); - xmlnode *query = xmlnode_get_child_with_namespace(iq->node, "query", "http://jabber.org/protocol/disco#items"); + JabberIq *iq = jabber_iq_new_query(userdata->js, JABBER_IQ_GET, NS_DISCO_ITEMS); + xmlnode *query = xmlnode_get_child_with_namespace(iq->node, "query", NS_DISCO_ITEMS); xmlnode_set_attrib(iq->node, "to", userdata->from); xmlnode_set_attrib(query, "node", "http://jabber.org/protocol/commands"); jabber_iq_set_callback(iq, jabber_adhoc_disco_result_cb, NULL); @@ -659,7 +659,7 @@ } } } else if (!strcmp(y->name, "query") && - !strcmp(xmlnode_get_namespace(y), "jabber:iq:last")) { + !strcmp(xmlnode_get_namespace(y), NS_LAST_ACTIVITY)) { /* resource has specified idle */ const gchar *seconds = xmlnode_get_attrib(y, "seconds"); if (seconds) {
--- a/libpurple/protocols/jabber/si.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/si.c Sat Nov 28 02:22:49 2009 +0000 @@ -144,7 +144,7 @@ if(xfer->type == PURPLE_XFER_SEND) { xmlnode *activate; - iq = jabber_iq_new_query(jsx->js, JABBER_IQ_SET, "http://jabber.org/protocol/bytestreams"); + iq = jabber_iq_new_query(jsx->js, JABBER_IQ_SET, NS_BYTESTREAMS); xmlnode_set_attrib(iq->node, "to", streamhost->jid); query = xmlnode_get_child(iq->node, "query"); xmlnode_set_attrib(query, "sid", jsx->stream_id); @@ -155,7 +155,7 @@ } else { - iq = jabber_iq_new_query(jsx->js, JABBER_IQ_RESULT, "http://jabber.org/protocol/bytestreams"); + iq = jabber_iq_new_query(jsx->js, JABBER_IQ_RESULT, NS_BYTESTREAMS); xmlnode_set_attrib(iq->node, "to", xfer->who); jabber_iq_set_id(iq, jsx->iq_id); query = xmlnode_get_child(iq->node, "query"); @@ -232,7 +232,7 @@ xmlnode_set_attrib(error, "code", "404"); xmlnode_set_attrib(error, "type", "cancel"); inf = xmlnode_new_child(error, "item-not-found"); - xmlnode_set_namespace(inf, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(inf, NS_XMPP_STANZAS); jabber_iq_send(iq); @@ -843,8 +843,7 @@ purple_xfer_unref(xfer); - iq = jabber_iq_new_query(jsx->js, JABBER_IQ_SET, - "http://jabber.org/protocol/bytestreams"); + iq = jabber_iq_new_query(jsx->js, JABBER_IQ_SET, NS_BYTESTREAMS); xmlnode_set_attrib(iq->node, "to", xfer->who); query = xmlnode_get_child(iq->node, "query"); @@ -1214,11 +1213,11 @@ if(var && !strcmp(var, "stream-method")) { if((value = xmlnode_get_child(field, "value"))) { char *val = xmlnode_get_data(value); - if(val && !strcmp(val, "http://jabber.org/protocol/bytestreams")) { + if(val && !strcmp(val, NS_BYTESTREAMS)) { jabber_si_xfer_bytestreams_send_init(xfer); jsx->stream_method |= STREAM_METHOD_BYTESTREAMS; found_method = TRUE; - } else if (val && !strcmp(val, XEP_0047_NAMESPACE)) { + } else if (val && !strcmp(val, NS_IBB)) { jsx->stream_method |= STREAM_METHOD_IBB; if (!found_method) { /* we haven't tried to init a bytestream session, yet @@ -1276,10 +1275,10 @@ behind troublesome firewalls */ option = xmlnode_new_child(field, "option"); value = xmlnode_new_child(option, "value"); - xmlnode_insert_data(value, "http://jabber.org/protocol/bytestreams", -1); + xmlnode_insert_data(value, NS_BYTESTREAMS, -1); option = xmlnode_new_child(field, "option"); value = xmlnode_new_child(option, "value"); - xmlnode_insert_data(value, "http://jabber.org/protocol/ibb", -1); + xmlnode_insert_data(value, NS_IBB, -1); jabber_iq_set_callback(iq, jabber_si_xfer_send_method_cb, xfer); @@ -1380,9 +1379,9 @@ error = xmlnode_new_child(iq->node, "error"); xmlnode_set_attrib(error, "type", "cancel"); child = xmlnode_new_child(error, "forbidden"); - xmlnode_set_namespace(child, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(child, NS_XMPP_STANZAS); child = xmlnode_new_child(error, "text"); - xmlnode_set_namespace(child, "urn:ietf:params:xml:ns:xmpp-stanzas"); + xmlnode_set_namespace(child, NS_XMPP_STANZAS); xmlnode_insert_data(child, "Offer Declined", -1); jabber_iq_send(iq); @@ -1460,7 +1459,7 @@ if (jbr) { char *msg; - if (jabber_resource_has_capability(jbr, XEP_0047_NAMESPACE)) + if (jabber_resource_has_capability(jbr, NS_IBB)) jsx->stream_method |= STREAM_METHOD_IBB; if (jabber_resource_has_capability(jbr, "http://jabber.org/protocol/si/profile/file-transfer")) { jabber_si_xfer_send_request(xfer); @@ -1588,10 +1587,10 @@ for people who know their firewalls are very restrictive */ if (jsx->stream_method & STREAM_METHOD_BYTESTREAMS) { value = xmlnode_new_child(field, "value"); - xmlnode_insert_data(value, "http://jabber.org/protocol/bytestreams", -1); + xmlnode_insert_data(value, NS_BYTESTREAMS, -1); } else if(jsx->stream_method & STREAM_METHOD_IBB) { value = xmlnode_new_child(field, "value"); - xmlnode_insert_data(value, "http://jabber.org/protocol/ibb", -1); + xmlnode_insert_data(value, NS_IBB, -1); } jabber_iq_send(iq); @@ -1695,9 +1694,9 @@ if((value = xmlnode_get_child(option, "value"))) { char *val; if((val = xmlnode_get_data(value))) { - if(!strcmp(val, "http://jabber.org/protocol/bytestreams")) { + if(!strcmp(val, NS_BYTESTREAMS)) { jsx->stream_method |= STREAM_METHOD_BYTESTREAMS; - } else if(!strcmp(val, "http://jabber.org/protocol/ibb")) { + } else if(!strcmp(val, NS_IBB)) { jsx->stream_method |= STREAM_METHOD_IBB; } g_free(val);
--- a/libpurple/protocols/jabber/useravatar.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/jabber/useravatar.h Sat Nov 28 02:22:49 2009 +0000 @@ -29,12 +29,6 @@ /* Implementation of XEP-0084 */ -#define NS_AVATAR_0_12_DATA "http://www.xmpp.org/extensions/xep-0084.html#ns-data" -#define NS_AVATAR_0_12_METADATA "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata" - -#define NS_AVATAR_1_1_DATA "urn:xmpp:avatar:data" -#define NS_AVATAR_1_1_METADATA "urn:xmpp:avatar:metadata" - void jabber_avatar_init(void); void jabber_avatar_set(JabberStream *js, PurpleStoredImage *img);
--- a/libpurple/protocols/msn/msn.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/msn/msn.c Sat Nov 28 02:22:49 2009 +0000 @@ -23,8 +23,6 @@ */ #define PHOTO_SUPPORT 1 -#include <glib.h> - #include "msn.h" #include "accountopt.h" #include "contact.h"
--- a/libpurple/protocols/msn/object.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/msn/object.c Sat Nov 28 02:22:49 2009 +0000 @@ -21,6 +21,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ + +#include "msn.h" #include "object.h" #include "debug.h" /* Sha1 stuff */
--- a/libpurple/protocols/mxit/chunk.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/chunk.c Sat Nov 28 02:22:49 2009 +0000 @@ -576,18 +576,17 @@ /* parse the resource chunks */ while ( chunklen > 0 ) { - struct raw_chunk* chunkhdr = ( struct raw_chunk * ) &chunkdata[pos]; - chunkhdr->length = ntohl( chunkhdr->length ); /* host byte-order */ + gchar* chunk = &chunkdata[pos]; /* start of chunk data */ - pos += sizeof( struct raw_chunk ); + pos += MXIT_CHUNK_HEADER_SIZE; - switch ( chunkhdr->type ) { + switch ( chunk_type( chunk ) ) { case CP_CHUNK_SPLASH : /* splash image */ { struct splash_chunk* splash = g_new0( struct splash_chunk, 1 ); - mxit_chunk_parse_splash( &chunkdata[pos], chunkhdr->length, splash ); + mxit_chunk_parse_splash( &chunkdata[pos], chunk_length( chunk ), splash ); cr->resources = g_list_append( cr->resources, splash ); break; @@ -600,12 +599,12 @@ break; } default: - purple_debug_info( MXIT_PLUGIN_ID, "Unsupported custom resource chunk received (%i)\n", chunkhdr->type ); + purple_debug_info( MXIT_PLUGIN_ID, "Unsupported custom resource chunk received (%i)\n", chunk_type( chunk) ); } /* skip over data to next resource chunk */ - pos += chunkhdr->length; - chunklen -= ( sizeof( struct raw_chunk ) + chunkhdr->length ); + pos += chunk_length( chunk ); + chunklen -= ( MXIT_CHUNK_HEADER_SIZE + chunk_length( chunk ) ); } }
--- a/libpurple/protocols/mxit/chunk.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/chunk.h Sat Nov 28 02:22:49 2009 +0000 @@ -31,6 +31,8 @@ #define MXIT_CHUNK_FILEID_LEN 8 /* bytes */ +#define MXIT_CHUNK_HEADER_SIZE 5 /* type (1 byte) + length (4 bytes) */ + /* Multimedia chunk types */ #define CP_CHUNK_NONE 0x00 /* (0) no chunk */ @@ -68,13 +70,35 @@ #define REJECT_BAD_RECIPIENT 4 /* - * a Chunk header + * Chunk header manipulation functions */ -struct raw_chunk { - guint8 type; - guint32 length; - gchar data[0]; -} __attribute__ ((packed)); +static inline guint chunk_type( gchar* chunkheader ) +{ + return *chunkheader; +} + +static inline void set_chunk_type( gchar* chunkheader, guint type ) +{ + *chunkheader = type; +} + +static inline guint32 chunk_length( gchar* chunkheader ) +{ + guint32 length = *( (const guint32*) &chunkheader[1] ); + return htonl( length ); +} + +static inline void set_chunk_length( gchar* chunkheader, guint32 size ) +{ + size = htonl( size ); + memcpy( &chunkheader[1], &size, sizeof( guint32 ) ); +} + +static inline gchar* chunk_data( gchar* chunkheader ) +{ + return &chunkheader[MXIT_CHUNK_HEADER_SIZE]; +} + struct offerfile_chunk { char fileid[MXIT_CHUNK_FILEID_LEN];
--- a/libpurple/protocols/mxit/formcmds.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/formcmds.c Sat Nov 28 02:22:49 2009 +0000 @@ -239,12 +239,10 @@ replymsg = g_hash_table_lookup(hash, "replymsg"); /* find the reply message */ if ((selmsg) && (replymsg)) { gchar* seltext = g_markup_escape_text(purple_url_decode(selmsg), -1); - gchar* replytext = g_markup_escape_text(purple_url_decode(replymsg), -1); - mxit_add_html_link( mx, replytext, seltext ); + mxit_add_html_link( mx, purple_url_decode(replymsg), seltext ); g_free(seltext); - g_free(replytext); } } @@ -345,7 +343,6 @@ * @param message The message text * @return The length of the command */ -//void mxit_command_received(struct MXitSession* session, const char* from, char* message, time_t timestamp) int mxit_parse_command(struct RXMsgData* mx, char* message) { GHashTable* hash = NULL;
--- a/libpurple/protocols/mxit/markup.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/markup.c Sat Nov 28 02:22:49 2009 +0000 @@ -416,7 +416,6 @@ } else if ( mx->chatid < 0 ) { /* normal chat message */ - //serv_got_im( mx->session->con, mx->from, mx->msg->str, mx->flags, mx->timestamp ); mxit_show_split_message( mx ); } else {
--- a/libpurple/protocols/mxit/mxit.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/mxit.c Sat Nov 28 02:22:49 2009 +0000 @@ -689,9 +689,6 @@ option = purple_account_option_bool_new( _( "Enable splash-screen popup" ), MXIT_CONFIG_SPLASHPOPUP, FALSE ); proto_info.protocol_options = g_list_append( proto_info.protocol_options, option ); - - if ( sizeof( struct raw_chunk ) != 5 ) - g_log(G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, "sizeof(struct raw_chunk) != 5! MXit probably won't work!\n"); } PURPLE_INIT_PLUGIN( mxit, init_plugin, plugin_info );
--- a/libpurple/protocols/mxit/mxit.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/mxit.h Sat Nov 28 02:22:49 2009 +0000 @@ -61,7 +61,7 @@ /* Plugin details */ #define MXIT_PLUGIN_ID "prpl-loubserp-mxit" #define MXIT_PLUGIN_NAME "MXit" -#define MXIT_PLUGIN_VERSION "2.2.0" +#define MXIT_PLUGIN_VERSION "2.3.0" #define MXIT_PLUGIN_EMAIL "Pieter Loubser <libpurple@mxit.com>" #define MXIT_PLUGIN_WWW "http://www.mxit.com" #define MXIT_PLUGIN_SUMMARY "MXit Protocol Plugin"
--- a/libpurple/protocols/mxit/protocol.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/protocol.c Sat Nov 28 02:22:49 2009 +0000 @@ -1035,7 +1035,7 @@ { char data[CP_MAX_PACKET]; int datalen = 0; - struct raw_chunk* chunk; + gchar* chunk; int size; purple_debug_info( MXIT_PLUGIN_ID, "SENDING FILE '%s' of %i bytes to user '%s'\n", filename, buflen, username ); @@ -1044,17 +1044,17 @@ datalen = sprintf( data, "ms=" ); /* map chunk header over data buffer */ - chunk = (struct raw_chunk *) &data[datalen]; - - size = mxit_chunk_create_senddirect( chunk->data, username, filename, buf, buflen ); + chunk = &data[datalen]; + + size = mxit_chunk_create_senddirect( chunk_data( chunk ), username, filename, buf, buflen ); if ( size < 0 ) { purple_debug_error( MXIT_PLUGIN_ID, "Error creating senddirect chunk (%i)\n", size ); return; } - chunk->type = CP_CHUNK_DIRECT_SND; - chunk->length = htonl( size ); - datalen += sizeof( struct raw_chunk ) + size; + set_chunk_type( chunk, CP_CHUNK_DIRECT_SND ); + set_chunk_length( chunk, size ); + datalen += MXIT_CHUNK_HEADER_SIZE + size; /* send the byte stream to the mxit server */ mxit_queue_packet( session, data, datalen, CP_CMD_MEDIA ); @@ -1071,7 +1071,7 @@ { char data[CP_MAX_PACKET]; int datalen = 0; - struct raw_chunk* chunk; + gchar* chunk; int size; purple_debug_info( MXIT_PLUGIN_ID, "mxit_send_file_reject\n" ); @@ -1080,17 +1080,17 @@ datalen = sprintf( data, "ms=" ); /* map chunk header over data buffer */ - chunk = (struct raw_chunk *) &data[datalen]; - - size = mxit_chunk_create_reject( chunk->data, fileid ); + chunk = &data[datalen]; + + size = mxit_chunk_create_reject( chunk_data( chunk ), fileid ); if ( size < 0 ) { purple_debug_error( MXIT_PLUGIN_ID, "Error creating reject chunk (%i)\n", size ); return; } - chunk->type = CP_CHUNK_REJECT; - chunk->length = htonl( size ); - datalen += sizeof( struct raw_chunk ) + size; + set_chunk_type( chunk, CP_CHUNK_REJECT ); + set_chunk_length( chunk, size ); + datalen += MXIT_CHUNK_HEADER_SIZE + size; /* send the byte stream to the mxit server */ mxit_queue_packet( session, data, datalen, CP_CMD_MEDIA ); @@ -1109,7 +1109,7 @@ { char data[CP_MAX_PACKET]; int datalen = 0; - struct raw_chunk* chunk; + gchar* chunk; int size; purple_debug_info( MXIT_PLUGIN_ID, "mxit_send_file_accept\n" ); @@ -1118,17 +1118,17 @@ datalen = sprintf( data, "ms=" ); /* map chunk header over data buffer */ - chunk = (struct raw_chunk *) &data[datalen]; - - size = mxit_chunk_create_get( chunk->data, fileid, filesize, offset ); + chunk = &data[datalen]; + + size = mxit_chunk_create_get( chunk_data(chunk), fileid, filesize, offset ); if ( size < 0 ) { purple_debug_error( MXIT_PLUGIN_ID, "Error creating getfile chunk (%i)\n", size ); return; } - chunk->type = CP_CHUNK_GET; - chunk->length = htonl( size ); - datalen += sizeof( struct raw_chunk ) + size; + set_chunk_type( chunk, CP_CHUNK_GET ); + set_chunk_length( chunk, size ); + datalen += MXIT_CHUNK_HEADER_SIZE + size; /* send the byte stream to the mxit server */ mxit_queue_packet( session, data, datalen, CP_CMD_MEDIA ); @@ -1145,7 +1145,7 @@ { char data[CP_MAX_PACKET]; int datalen = 0; - struct raw_chunk* chunk; + gchar* chunk; int size; purple_debug_info( MXIT_PLUGIN_ID, "mxit_send_file_received\n" ); @@ -1154,17 +1154,17 @@ datalen = sprintf( data, "ms=" ); /* map chunk header over data buffer */ - chunk = (struct raw_chunk *) &data[datalen]; - - size = mxit_chunk_create_received( chunk->data, fileid, status ); + chunk = &data[datalen]; + + size = mxit_chunk_create_received( chunk_data(chunk), fileid, status ); if ( size < 0 ) { purple_debug_error( MXIT_PLUGIN_ID, "Error creating received chunk (%i)\n", size ); return; } - chunk->type = CP_CHUNK_RECIEVED; - chunk->length = htonl( size ); - datalen += sizeof( struct raw_chunk ) + size; + set_chunk_type( chunk, CP_CHUNK_RECIEVED ); + set_chunk_length( chunk, size ); + datalen += MXIT_CHUNK_HEADER_SIZE + size; /* send the byte stream to the mxit server */ mxit_queue_packet( session, data, datalen, CP_CMD_MEDIA ); @@ -1182,7 +1182,7 @@ { char data[CP_MAX_PACKET]; int datalen = 0; - struct raw_chunk* chunk; + gchar* chunk; int size; purple_debug_info( MXIT_PLUGIN_ID, "mxit_set_avatar: %i bytes\n", avatarlen ); @@ -1191,17 +1191,17 @@ datalen = sprintf( data, "ms=" ); /* map chunk header over data buffer */ - chunk = (struct raw_chunk *) &data[datalen]; - - size = mxit_chunk_create_set_avatar( chunk->data, avatar, avatarlen ); + chunk = &data[datalen]; + + size = mxit_chunk_create_set_avatar( chunk_data(chunk), avatar, avatarlen ); if ( size < 0 ) { purple_debug_error( MXIT_PLUGIN_ID, "Error creating set avatar chunk (%i)\n", size ); return; } - chunk->type = CP_CHUNK_SET_AVATAR; - chunk->length = htonl( size ); - datalen += sizeof( struct raw_chunk ) + size; + set_chunk_type( chunk, CP_CHUNK_SET_AVATAR ); + set_chunk_length( chunk, size ); + datalen += MXIT_CHUNK_HEADER_SIZE + size; /* send the byte stream to the mxit server */ mxit_queue_packet( session, data, datalen, CP_CMD_MEDIA ); @@ -1221,7 +1221,7 @@ { char data[CP_MAX_PACKET]; int datalen = 0; - struct raw_chunk* chunk; + gchar* chunk; int size; purple_debug_info( MXIT_PLUGIN_ID, "mxit_get_avatar: %s\n", mxitId ); @@ -1230,17 +1230,17 @@ datalen = sprintf( data, "ms=" ); /* map chunk header over data buffer */ - chunk = (struct raw_chunk *) &data[datalen]; - - size = mxit_chunk_create_get_avatar( chunk->data, mxitId, avatarId, MXIT_AVATAR_SIZE ); + chunk = &data[datalen]; + + size = mxit_chunk_create_get_avatar( chunk_data(chunk), mxitId, avatarId, MXIT_AVATAR_SIZE ); if ( size < 0 ) { purple_debug_error( MXIT_PLUGIN_ID, "Error creating get avatar chunk (%i)\n", size ); return; } - chunk->type = CP_CHUNK_GET_AVATAR; - chunk->length = htonl( size ); - datalen += sizeof( struct raw_chunk ) + size; + set_chunk_type( chunk, CP_CHUNK_GET_AVATAR ); + set_chunk_length( chunk, size ); + datalen += MXIT_CHUNK_HEADER_SIZE + size; /* send the byte stream to the mxit server */ mxit_queue_packet( session, data, datalen, CP_CMD_MEDIA );
--- a/libpurple/protocols/mxit/roster.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/roster.c Sat Nov 28 02:22:49 2009 +0000 @@ -53,11 +53,11 @@ const char* name; } const mxit_statuses[] = { /* primative, no, id, name */ - { PURPLE_STATUS_OFFLINE, MXIT_PRESENCE_OFFLINE, "offline", NULL }, /* 0 */ - { PURPLE_STATUS_AVAILABLE, MXIT_PRESENCE_ONLINE, "online", NULL }, /* 1 */ - { PURPLE_STATUS_AWAY, MXIT_PRESENCE_AWAY, "away", NULL }, /* 2 */ - { PURPLE_STATUS_AVAILABLE, MXIT_PRESENCE_AVAILABLE, "chat", N_( "Chatty" ) }, /* 3 */ - { PURPLE_STATUS_UNAVAILABLE, MXIT_PRESENCE_DND, "dnd", NULL } /* 4 */ + { PURPLE_STATUS_OFFLINE, MXIT_PRESENCE_OFFLINE, "offline", N_( "Offline" ) }, /* 0 */ + { PURPLE_STATUS_AVAILABLE, MXIT_PRESENCE_ONLINE, "online", N_( "Available" ) }, /* 1 */ + { PURPLE_STATUS_AWAY, MXIT_PRESENCE_AWAY, "away", N_( "Away" ) }, /* 2 */ + { PURPLE_STATUS_AVAILABLE, MXIT_PRESENCE_AVAILABLE, "chat", N_( "Chatty" ) }, /* 3 */ + { PURPLE_STATUS_UNAVAILABLE, MXIT_PRESENCE_DND, "dnd", N_( "Do Not Disturb" ) } /* 4 */ }; @@ -398,7 +398,7 @@ contact->statusMsg = NULL; } if ( statusMsg[0] != '\0' ) - contact->statusMsg = g_strdup( statusMsg ); + contact->statusMsg = g_markup_escape_text( statusMsg, -1 ); /* update avatarId */ if ( ( contact->avatarId ) && ( g_ascii_strcasecmp( contact->avatarId, avatarId ) == 0 ) ) {
--- a/libpurple/protocols/mxit/splashscreen.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/mxit/splashscreen.c Sat Nov 28 02:22:49 2009 +0000 @@ -43,10 +43,10 @@ { const char* splashId = purple_account_get_string(session->acc, MXIT_CONFIG_SPLASHID, NULL); - purple_debug_info(MXIT_PLUGIN_ID, "Current splashId: '%s'\n", splashId); - - if ((splashId != NULL) && (*splashId != '\0')) + if ((splashId != NULL) && (*splashId != '\0')) { + purple_debug_info(MXIT_PLUGIN_ID, "Current splashId: '%s'\n", splashId); return splashId; + } else return NULL; } @@ -149,7 +149,7 @@ /* Get current splash ID */ splashId = splash_current(session); - if (!splashId) + if (splashId == NULL) /* no splash-screen */ return; /* if is clickable, then send click event */
--- a/libpurple/protocols/myspace/myspace.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/myspace/myspace.h Sat Nov 28 02:22:49 2009 +0000 @@ -20,6 +20,8 @@ #ifndef _MYSPACE_MYSPACE_H #define _MYSPACE_MYSPACE_H +#include "internal.h" + /* Other includes */ #include <string.h> #include <errno.h>/* for EAGAIN */ @@ -36,8 +38,6 @@ #include <sys/socket.h> #endif -#include "internal.h" - #include "notify.h" #include "plugin.h" #include "accountopt.h"
--- a/libpurple/protocols/novell/nmuser.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/novell/nmuser.c Sat Nov 28 02:22:49 2009 +0000 @@ -18,9 +18,8 @@ * */ -#include <glib.h> +#include "internal.h" #include <string.h> -#include "internal.h" #include "nmfield.h" #include "nmuser.h" #include "nmconn.h"
--- a/libpurple/protocols/oscar/oscar.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.h Sat Nov 28 02:22:49 2009 +0000 @@ -29,10 +29,10 @@ #ifndef _OSCAR_H_ #define _OSCAR_H_ +#include "internal.h" #include "circbuffer.h" #include "debug.h" #include "eventloop.h" -#include "internal.h" #include "proxy.h" #include "sslconn.h"
--- a/libpurple/protocols/qq/buddy_list.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/qq/buddy_list.c Sat Nov 28 02:22:49 2009 +0000 @@ -22,8 +22,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include <string.h> - #include "qq.h" #include "debug.h"
--- a/libpurple/protocols/qq/buddy_opt.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/qq/buddy_opt.c Sat Nov 28 02:22:49 2009 +0000 @@ -22,8 +22,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" #include "debug.h" -#include "internal.h" #include "notify.h" #include "request.h" #include "privacy.h"
--- a/libpurple/protocols/qq/char_conv.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/qq/char_conv.c Sat Nov 28 02:22:49 2009 +0000 @@ -22,8 +22,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" #include "debug.h" -#include "internal.h" #include "char_conv.h" #include "packet_parse.h"
--- a/libpurple/protocols/qq/qq.h Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/qq/qq.h Sat Nov 28 02:22:49 2009 +0000 @@ -25,7 +25,6 @@ #ifndef _QQ_QQ_H_ #define _QQ_QQ_H_ -#include <glib.h> #include "internal.h" #include "ft.h" #include "circbuffer.h"
--- a/libpurple/protocols/qq/qq_base.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/qq/qq_base.c Sat Nov 28 02:22:49 2009 +0000 @@ -22,8 +22,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" #include "debug.h" -#include "internal.h" #include "server.h" #include "cipher.h" #include "request.h"
--- a/libpurple/protocols/qq/qq_network.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/qq/qq_network.c Sat Nov 28 02:22:49 2009 +0000 @@ -22,9 +22,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" #include "cipher.h" #include "debug.h" -#include "internal.h" #include "buddy_info.h" #include "group_info.h"
--- a/libpurple/protocols/qq/qq_process.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/qq/qq_process.c Sat Nov 28 02:22:49 2009 +0000 @@ -22,9 +22,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" #include "cipher.h" #include "debug.h" -#include "internal.h" #include "buddy_info.h" #include "buddy_list.h"
--- a/libpurple/protocols/qq/utils.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/qq/utils.c Sat Nov 28 02:22:49 2009 +0000 @@ -22,6 +22,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" + #include "limits.h" #include "stdlib.h" #include "string.h"
--- a/libpurple/protocols/sametime/sametime.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/sametime/sametime.c Sat Nov 28 02:22:49 2009 +0000 @@ -21,6 +21,7 @@ USA. */ +#include "internal.h" /* system includes */ #include <stdlib.h> @@ -30,9 +31,6 @@ #include <glib.h> /* purple includes */ -#include "internal.h" -#include "config.h" - #include "account.h" #include "accountopt.h" #include "circbuffer.h"
--- a/libpurple/protocols/silc/buddy.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/silc/buddy.c Sat Nov 28 02:22:49 2009 +0000 @@ -17,6 +17,7 @@ */ +#include "internal.h" #include "silc.h" #include "silcclient.h" #include "silcpurple.h"
--- a/libpurple/protocols/silc/chat.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/silc/chat.c Sat Nov 28 02:22:49 2009 +0000 @@ -17,6 +17,7 @@ */ +#include "internal.h" #include "silc.h" #include "silcclient.h" #include "silcpurple.h"
--- a/libpurple/protocols/silc/ft.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/silc/ft.c Sat Nov 28 02:22:49 2009 +0000 @@ -17,6 +17,7 @@ */ +#include "internal.h" #include "silc.h" #include "silcclient.h" #include "silcpurple.h"
--- a/libpurple/protocols/silc/ops.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/silc/ops.c Sat Nov 28 02:22:49 2009 +0000 @@ -17,6 +17,7 @@ */ +#include "internal.h" #include "silc.h" #include "silcclient.h" #include "silcpurple.h"
--- a/libpurple/protocols/silc/pk.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/silc/pk.c Sat Nov 28 02:22:49 2009 +0000 @@ -17,6 +17,7 @@ */ +#include "internal.h" #include "silc.h" #include "silcclient.h" #include "silcpurple.h"
--- a/libpurple/protocols/silc/silc.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/silc/silc.c Sat Nov 28 02:22:49 2009 +0000 @@ -17,6 +17,7 @@ */ +#include "internal.h" #include "silc.h" #include "silcclient.h" #include "silcpurple.h"
--- a/libpurple/protocols/silc/util.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/silc/util.c Sat Nov 28 02:22:49 2009 +0000 @@ -17,6 +17,7 @@ */ +#include "internal.h" #include "silc.h" #include "silcclient.h" #include "silcpurple.h"
--- a/libpurple/protocols/silc/wb.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/silc/wb.c Sat Nov 28 02:22:49 2009 +0000 @@ -17,6 +17,7 @@ */ +#include "internal.h" #include "silc.h" #include "silcclient.h" #include "silcpurple.h"
--- a/libpurple/protocols/yahoo/util.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/protocols/yahoo/util.c Sat Nov 28 02:22:49 2009 +0000 @@ -656,7 +656,10 @@ /* Strip off the outter HTML node */ /* This probably isn't necessary, especially if we made the outter HTML * node an empty span. But the HTML is simpler this way. */ - xmlstr2 = g_strndup(xmlstr1 + 6, strlen(xmlstr1) - 13); + if (!purple_strequal(xmlstr1, "<html/>")) + xmlstr2 = g_strndup(xmlstr1 + 6, strlen(xmlstr1) - 13); + else + xmlstr2 = g_strdup(""); g_free(xmlstr1); esc = g_strescape(x, NULL);
--- a/libpurple/roomlist.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/roomlist.c Sat Nov 28 02:22:49 2009 +0000 @@ -24,8 +24,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include <glib.h> - #include "internal.h" #include "account.h"
--- a/libpurple/tests/test_yahoo_util.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/tests/test_yahoo_util.c Sat Nov 28 02:22:49 2009 +0000 @@ -15,6 +15,10 @@ START_TEST(test_codes_to_html) { + assert_string_equal_free("", + yahoo_codes_to_html("")); + assert_string_equal_free("", + yahoo_codes_to_html("\x1B[12345m")); assert_string_equal_free("plain", yahoo_codes_to_html("plain")); assert_string_equal_free("unknown ansi code",
--- a/libpurple/theme-manager.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/theme-manager.c Sat Nov 28 02:22:49 2009 +0000 @@ -20,9 +20,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include <glib.h> -#include <string.h> - #include "internal.h" #include "theme-manager.h" #include "util.h"
--- a/libpurple/theme.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/theme.c Sat Nov 28 02:22:49 2009 +0000 @@ -20,9 +20,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include <glib.h> -#include <string.h> - #include "internal.h" #include "theme.h" #include "util.h"
--- a/libpurple/whiteboard.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/whiteboard.c Sat Nov 28 02:22:49 2009 +0000 @@ -21,8 +21,6 @@ * */ -#include <string.h> - #include "internal.h" #include "whiteboard.h" #include "prpl.h"
--- a/libpurple/xmlnode.c Mon Nov 23 23:53:19 2009 +0000 +++ b/libpurple/xmlnode.c Sat Nov 28 02:22:49 2009 +0000 @@ -29,8 +29,8 @@ * as I want to be. Thank you libxode for giving me a good starting point */ #define _PURPLE_XMLNODE_C_ +#include "internal.h" #include "debug.h" -#include "internal.h" #include <libxml/parser.h> #include <string.h>
--- a/pidgin/gtkcertmgr.c Mon Nov 23 23:53:19 2009 +0000 +++ b/pidgin/gtkcertmgr.c Sat Nov 28 02:22:49 2009 +0000 @@ -25,10 +25,8 @@ * */ -#include <glib.h> - +#include "internal.h" #include "core.h" -#include "internal.h" #include "pidgin.h" #include "pidginstock.h"
--- a/pidgin/gtkmedia.c Mon Nov 23 23:53:19 2009 +0000 +++ b/pidgin/gtkmedia.c Sat Nov 28 02:22:49 2009 +0000 @@ -23,9 +23,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include <string.h> +#include "internal.h" #include "debug.h" -#include "internal.h" #include "connection.h" #include "media.h" #include "mediamanager.h"
--- a/pidgin/gtkwhiteboard.c Mon Nov 23 23:53:19 2009 +0000 +++ b/pidgin/gtkwhiteboard.c Sat Nov 28 02:22:49 2009 +0000 @@ -21,8 +21,6 @@ * */ -#include <stdlib.h> - #include "internal.h" #include "blist.h" #include "debug.h"
--- a/pidgin/plugins/gtk-signals-test.c Mon Nov 23 23:53:19 2009 +0000 +++ b/pidgin/plugins/gtk-signals-test.c Sat Nov 28 02:22:49 2009 +0000 @@ -20,9 +20,10 @@ */ #define GTK_SIGNAL_TEST_PLUGIN_ID "gtk-signals-test" +#include "internal.h" + #include <gtk/gtk.h> -#include "internal.h" #include "debug.h" #include "version.h"
--- a/po/de.po Mon Nov 23 23:53:19 2009 +0000 +++ b/po/de.po Sat Nov 28 02:22:49 2009 +0000 @@ -11,9 +11,9 @@ msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-11-23 19:22+0100\n" -"PO-Revision-Date: 2009-11-23 19:21+0100\n" -"Last-Translator: Jochen Kemnade <jochenkemnade@web.de>\n" +"POT-Creation-Date: 2009-11-26 22:45+0100\n" +"PO-Revision-Date: 2009-11-26 22:44+0100\n" +"Last-Translator: Björn Voigt <bjoern@cs.tu-berlin.de>\n" "Language-Team: Deutsch <de@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -12083,6 +12083,9 @@ msgid "Mongolian" msgstr "Mongolisch" +msgid "Malay" +msgstr "Malaiisch" + msgid "Bokmål Norwegian" msgstr "Bokmål Norwegisch" @@ -12152,6 +12155,9 @@ msgid "Turkish" msgstr "Türkisch" +msgid "Ukranian" +msgstr "Ukrainisch" + msgid "Urdu" msgstr "Urdu"
--- a/po/hu.po Mon Nov 23 23:53:19 2009 +0000 +++ b/po/hu.po Sat Nov 28 02:22:49 2009 +0000 @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: pidgin 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-11-14 20:34-0500\n" -"PO-Revision-Date: 2009-08-29 00:59+0200\n" +"POT-Creation-Date: 2009-11-26 13:07+0100\n" +"PO-Revision-Date: 2009-11-26 13:06+0100\n" "Last-Translator: Gabor Kelemen <kelemeng at gnome dot hu>\n" "Language-Team: Hungarian <gnome at fsf dot hu>\n" "MIME-Version: 1.0\n" @@ -633,9 +633,8 @@ msgid "Enable Sounds" msgstr "Hangok engedélyezése" -#, fuzzy msgid "You are not connected." -msgstr "Lezárta a kapcsolatot." +msgstr "Nincs csatlakozva." msgid "<AUTO-REPLY> " msgstr "<AUTOMATIKUS VÁLASZ> " @@ -646,9 +645,8 @@ msgstr[0] "%d felhasználó listája:\n" msgstr[1] "%d felhasználó listája:\n" -#, fuzzy msgid "Supported debug options are: plugins version" -msgstr "A támogatott hibakeresési parancsok: version" +msgstr "A támogatott hibakeresési parancsok: plugins version" msgid "No such command (in this context)." msgstr "Nincs ilyen parancs (ebben a kontextusban)." @@ -800,7 +798,7 @@ #, c-format msgid "%.2f KiB/s" -msgstr "%.2f KiB/mp" +msgstr "%.2f KiB/s" msgid "Sent" msgstr "Elküldött" @@ -1530,10 +1528,10 @@ #, c-format msgid "TinyURL for above: %s" -msgstr "" +msgstr "TinyURL a fentihez: %s" msgid "Please wait while TinyURL fetches a shorter URL ..." -msgstr "" +msgstr "Kis türelmet, a TinyURL rövidebb URL címet készít…" msgid "Only create TinyURL for URLs of this length or greater" msgstr "TinyURL készítése csak a legalább ilyen hosszú URL-címekhez" @@ -1663,6 +1661,8 @@ "The certificate is not trusted because no certificate that can verify it is " "currently trusted." msgstr "" +"A tanúsítvány nem megbízható, mivel az ellenőrzésére képes egyik tanúsítvány " +"sem megbízható." msgid "The certificate is not valid yet." msgstr "A tanúsítvány még nem érvényes." @@ -1894,9 +1894,9 @@ msgid "Resolver process exited without answering our request" msgstr "A feloldó folyamat a kérés megválaszolása nélkül lépett ki" -#, fuzzy, c-format +#, c-format msgid "Error converting %s to punycode: %d" -msgstr "Hiba %s feloldásakor: %d" +msgstr "Hiba %s átalakításakor punycode-ra: %d" #, c-format msgid "Thread creation failure: %s" @@ -2215,17 +2215,14 @@ msgid "A non-recoverable Farsight2 error has occurred." msgstr "Helyrehozhatatlan Farsight2 hiba történt." -#, fuzzy msgid "Conference error" msgstr "Konferenciahiba" -#, fuzzy msgid "Error with your microphone" -msgstr "Hiba történt a mikrofonnal." - -#, fuzzy +msgstr "Hiba történt a mikrofonnal" + msgid "Error with your webcam" -msgstr "Hiba történt a webkamerával." +msgstr "Hiba történt a webkamerával" #, c-format msgid "Error creating session: %s" @@ -3993,6 +3990,10 @@ msgid "Log Out" msgstr "Kijelentkezés" +#. primative, no, id, name +#. 0 +#. 1 +#. 2 msgid "Chatty" msgstr "Beszédes" @@ -4261,6 +4262,7 @@ msgid "None (To pending)" msgstr "Senki (Címzett függőben)" +#. 0 msgid "None" msgstr "Nincs" @@ -4571,9 +4573,8 @@ msgid "configure: Configure a chat room." msgstr "configure: Csevegőszoba beállítása." -#, fuzzy msgid "part [message]: Leave the room." -msgstr "part [szoba]: A szoba elhagyása." +msgstr "part [üzenet]: A szoba elhagyása." msgid "register: Register with a chat room." msgstr "register: Regisztráció csevegőszobánál." @@ -5242,7 +5243,7 @@ "Az MSN használatához SSL támogatás szükséges. Telepítsen egy támogatott SSL " "könyvtárat." -#, fuzzy, c-format +#, c-format msgid "" "Unable to add the buddy %s because the username is invalid. Usernames must " "be valid email addresses." @@ -5472,9 +5473,8 @@ msgid "Unknown error (%d)" msgstr "Ismeretlen hiba (%d)" -#, fuzzy msgid "Unable to remove user" -msgstr "Nem vehető fel a felhasználó" +msgstr "Nem törölhető a felhasználó" msgid "Mobile message was not sent because it was too long." msgstr "A mobilüzenet nem küldhető el, mert túl hosszú." @@ -5712,28 +5712,82 @@ msgid "%s has removed you from his or her buddy list." msgstr "%s eltávolította Önt a partnerlistájáról." +#. 1 +msgid "Angry" +msgstr "Dühös" + +#. 2 +msgid "Excited" +msgstr "Érdeklődő" + +#. 3 +msgid "Grumpy" +msgstr "Rosszkedvű" + +#. 4 +msgid "Happy" +msgstr "Boldog" + +#. 5 +msgid "In Love" +msgstr "Szerelmes" + +#. 6 +msgid "Invincible" +msgstr "Legyőzhetetlen" + +#. 7 +msgid "Sad" +msgstr "Szomorú" + +#. 8 +msgid "Hot" +msgstr "Forró" + +#. 9 +msgid "Sick" +msgstr "Beteg" + +#. 10 +msgid "Sleepy" +msgstr "Álmos" + #. show current mood -#, fuzzy msgid "Current Mood" -msgstr "Az Ön jelenlegi hangulata" +msgstr "Jelenlegi hangulat" #. add all moods to list -#, fuzzy msgid "New Mood" -msgstr "Hangulat" - -#, fuzzy +msgstr "Új hangulat" + msgid "Change your Mood" -msgstr "Jelszó módosítása" - -#, fuzzy +msgstr "Hangulat módosítása" + msgid "How do you feel right now?" -msgstr "Nem vagyok itt" +msgstr "Hogy érzi magát?" + +msgid "The PIN you entered is invalid." +msgstr "A megadott PIN érvénytelen." + +msgid "The PIN you entered has an invalid length [4-10]." +msgstr "A megadott PIN hossza érvénytelen [4-10]." + +msgid "The PIN is invalid. It should only consist of digits [0-9]." +msgstr "A PIN érvénytelen. Csak számokból állhat [0-9]." + +msgid "The two PINs you entered do not match." +msgstr "A megadott két PIN nem egyezik." + +msgid "The name you entered is invalid." +msgstr "A megadott név érvénytelen." + +msgid "" +"The birthday you entered is invalid. The correct format is: 'YYYY-MM-DD'." +msgstr "A megadott születésnap érvénytelen. A helyes formátum: „ÉÉÉÉ-HH-NN”." #. show error to user -#, fuzzy msgid "Profile Update Error" -msgstr "Írási hiba" +msgstr "Profilfrissítési hiba" #. no profile information yet, so we cannot update #. (reference: "libpurple/request.h") @@ -5741,354 +5795,298 @@ msgstr "Profil" msgid "Your profile information is not yet retrieved. Please try again later." -msgstr "" +msgstr "A profilinformációi még nincsenek lekérve. Próbálja újra később." #. pin -#, fuzzy msgid "PIN" -msgstr "UIN" +msgstr "PIN" msgid "Verify PIN" -msgstr "" +msgstr "PIN ellenőrzése" #. display name -#, fuzzy msgid "Display Name" -msgstr "Vezetéknév" +msgstr "Megjelenő név" #. hidden msgid "Hide my number" -msgstr "" +msgstr "Rejtsd el a számom" #. mobile number -#, fuzzy msgid "Mobile Number" msgstr "Mobiltelefonszám" -#, fuzzy msgid "Update your Profile" -msgstr "Yahoo! profil" +msgstr "Profil frissítése" msgid "Here you can update your MXit profile" -msgstr "" +msgstr "Itt frissítheti MXit profilját" msgid "View Splash" -msgstr "" +msgstr "Indítókép megjelenítése" msgid "There is no splash-screen currently available" -msgstr "" - -#, fuzzy +msgstr "Nem érhető el indítókép" + msgid "About" -msgstr "A névjegyem" +msgstr "Névjegy" #. display / change mood -#, fuzzy msgid "Change Mood..." -msgstr "Jelszó módosítása…" +msgstr "Hangulat módosítása…" #. display / change profile -#, fuzzy msgid "Change Profile..." -msgstr "Jelszó módosítása…" +msgstr "Profil módosítása…" #. display splash-screen -#, fuzzy msgid "View Splash..." -msgstr "Napló megtekintése…" +msgstr "Indítókép megtekintése…" #. display plugin version -#, fuzzy msgid "About..." -msgstr "A névjegyem" +msgstr "Névjegy…" #. the file is too big -#, fuzzy msgid "The file you are trying to send is too large!" -msgstr "Az üzenet túl nagy." - -msgid "" -"Unable to connect to the mxit HTTP server. Please check your server server " -"settings." -msgstr "" - -#, fuzzy +msgstr "A küldeni kívánt fájl túl nagy." + +msgid "" +"Unable to connect to the MXit HTTP server. Please check your server settings." +msgstr "" +"Nem lehet kapcsolódni a Mxit HTTP kiszolgálóhoz. Ellenőrizze a kiszolgáló " +"beállításait." + msgid "Logging In..." -msgstr "Bejelentkezés" - -#, fuzzy -msgid "" -"Unable to connect to the mxit server. Please check your server server " -"settings." -msgstr "" -"Nem lehet kapcsolódni a kiszolgálóhoz. Adja meg a kiszolgáló címét, amelyhez " -"kapcsolódni szeretne." - -#, fuzzy +msgstr "Bejelentkezés…" + +msgid "" +"Unable to connect to the MXit server. Please check your server settings." +msgstr "" +"Nem lehet kapcsolódni a MXit kiszolgálóhoz. Ellenőrizze a kiszolgáló " +"beállításait." + msgid "Connecting..." -msgstr "Kapcsolódás" +msgstr "Kapcsolódás…" + +msgid "The nick name you entered is invalid." +msgstr "A megadott becenév érvénytelen." + +msgid "The PIN you entered has an invalid length [7-10]." +msgstr "A megadott PIN érvénytelen hosszúságú [7-10]." #. mxit login name msgid "MXit Login Name" -msgstr "" +msgstr "MXit bejelentkezési név" #. nick name -#, fuzzy msgid "Nick Name" msgstr "Becenév" #. show the form to the user to complete -#, fuzzy msgid "Register New MXit Account" -msgstr "Új XMPP fiók regisztrálása" - -#, fuzzy +msgstr "Új MXit fiók regisztrálása" + msgid "Please fill in the following fields:" -msgstr "Töltse ki az alábbi mezőket" +msgstr "Töltse ki az alábbi mezőket:" #. no reply from the WAP site msgid "Error contacting the MXit WAP site. Please try again later." -msgstr "" +msgstr "Hiba a MXit WAP oldalhoz kapcsolódáskor. Próbálja újra később." #. wapserver error #. server could not find the user msgid "" "MXit is currently unable to process the request. Please try again later." -msgstr "" +msgstr "A MXit jelenleg nem képes feldolgozni a kérést. Próbálja újra később." msgid "Wrong security code entered. Please try again later." -msgstr "" +msgstr "A megadott biztonsági kód hibás. Próbálja újra később." msgid "Your session has expired. Please try again later." -msgstr "" +msgstr "A munkamenet lejárt. Próbálja újra később." msgid "Invalid country selected. Please try again." -msgstr "" +msgstr "Érvénytelen országot választott. Próbálja újra később." msgid "Username is not registered. Please register first." -msgstr "" +msgstr "A felhasználónév nincs regisztrálva. Először regisztráljon." msgid "Username is already registered. Please choose another username." msgstr "" - -#, fuzzy +"A felhasználónév már használatban van. Válasszon másik felhasználónevet." + msgid "Internal error. Please try again later." -msgstr "A kiszolgáló nem érhető el, próbálkozzon később" +msgstr "Belső hiba. Próbálja újra később." msgid "You did not enter the security code" -msgstr "" - -#, fuzzy +msgstr "Nem adta meg a biztonsági kódot." + msgid "Security Code" -msgstr "Biztonság engedélyezve" +msgstr "Biztonsági kód" #. ask for input -#, fuzzy msgid "Enter Security Code" -msgstr "Adja meg a kódot" - -#, fuzzy +msgstr "Adja meg a biztonsági kódot" + msgid "Your Country" msgstr "Ország" -#, fuzzy msgid "Your Language" -msgstr "Előnyben részesített nyelv" +msgstr "Nyelv" #. display the form to the user and wait for his/her input -#, fuzzy msgid "MXit Authorization" -msgstr "Engedélyezés kérése" +msgstr "MXit engedélyezés" msgid "MXit account validation" -msgstr "" - -#, fuzzy +msgstr "Mxit fiókellenőrzés" + msgid "Retrieving User Information..." -msgstr "Kiszolgálóinformációk" - -#, fuzzy +msgstr "Felhasználóinformációk lekérése…" + +msgid "Loading menu..." +msgstr "Menü betöltése…" + msgid "Status Message" -msgstr "Elküldött üzenetek" - -#, fuzzy +msgstr "Állapotüzenet" + msgid "Hidden Number" -msgstr "Középső név" - -#, fuzzy +msgstr "Rejtett szám" + msgid "Your Mobile Number..." -msgstr "Mobiltelefonszám beállítása…" +msgstr "Az Ön mobiltelefonszáma…" #. Configuration options #. WAP server (reference: "libpurple/accountopt.h") -#, fuzzy msgid "WAP Server" -msgstr "Kiszolgáló" - -#, fuzzy +msgstr "WAP kiszolgáló" + msgid "Connect via HTTP" -msgstr "Kapcsolódás TCP segítségével" +msgstr "Kapcsolódás HTTP segítségével" msgid "Enable splash-screen popup" -msgstr "" +msgstr "Felugró indítókép engedélyezése" #. we must have lost the connection, so terminate it so that we can reconnect msgid "We have lost the connection to MXit. Please reconnect." -msgstr "" +msgstr "A kapcsolat elveszett a MXithez. Csatlakozzon újra." #. packet could not be queued for transmission -#, fuzzy msgid "Message Send Error" -msgstr "XMPP üzenethiba" - -#, fuzzy +msgstr "Üzenetküldési hiba" + msgid "Unable to process your request at this time" -msgstr "Nem oldható fel a gépnév" +msgstr "Nem dolgozható fel a kérés" msgid "Timeout while waiting for a response from the MXit server." -msgstr "" - -#, fuzzy +msgstr "Időtúllépés a MXit kiszolgáló válaszára várakozás közben." + msgid "Successfully Logged In..." -msgstr "Sikeresen csatlakozott a Qun-hoz" - -#, fuzzy +msgstr "Sikeres bejelentkezés…" + +#, c-format +msgid "" +"%s sent you an encrypted message, but it is not supported on this client." +msgstr "%s titkosított üzenetet küldött, de ez még nem támogatott." + msgid "Message Error" -msgstr "XMPP üzenethiba" +msgstr "Üzenethiba" msgid "Cannot perform redirect using the specified protocol" -msgstr "" - -#, fuzzy +msgstr "Nem végezhető átirányítás a megadott protokoll használatával" + +msgid "An internal MXit server error occurred." +msgstr "Belső MXit kiszolgálóhiba történt." + +#, c-format +msgid "Login error: %s (%i)" +msgstr "Bejelentkezési hiba: %s (%i)" + +#, c-format +msgid "Logout error: %s (%i)" +msgstr "Kijelentkezési hiba: %s (%i)" + msgid "Contact Error" -msgstr "Kapcsolódási hiba" - -#, fuzzy +msgstr "Partnerhiba" + msgid "Message Sending Error" -msgstr "XMPP üzenethiba" - -#, fuzzy +msgstr "Üzenetküldési hiba" + msgid "Status Error" -msgstr "Folyamhiba" - -#, fuzzy +msgstr "Állapothiba" + msgid "Mood Error" -msgstr "Ikonhiba" - -#, fuzzy +msgstr "Hangulathiba" + msgid "Invitation Error" -msgstr "Regisztrációtörlési hiba" - -#, fuzzy +msgstr "Meghívási hiba" + msgid "Contact Removal Error" -msgstr "Kapcsolódási hiba" - -#, fuzzy +msgstr "Partnereltávolítási hiba" + msgid "Subscription Error" -msgstr "Feliratkozás" - -#, fuzzy +msgstr "Feliratkozási hiba" + msgid "Contact Update Error" -msgstr "Kapcsolódási hiba" - -#, fuzzy +msgstr "Partnerfrissítési hiba" + msgid "File Transfer Error" -msgstr "Fájlátvitel" - -#, fuzzy +msgstr "Fájlátviteli hiba" + msgid "Cannot create MultiMx room" -msgstr "Nem hozható létre figyelmeztetés" - -#, fuzzy +msgstr "Nem hozható létre MultiMx szoba" + msgid "MultiMx Invitation Error" -msgstr "Regisztrációtörlési hiba" - -#, fuzzy +msgstr "MultiMx meghívási hiba" + msgid "Profile Error" -msgstr "Írási hiba" +msgstr "Profilhiba" #. bad packet msgid "Invalid packet received from MXit." -msgstr "" +msgstr "Érvénytelen csomag érkezett a MXit-től." #. connection error msgid "A connection error occurred to MXit. (read stage 0x01)" -msgstr "" +msgstr "Kapcsolathiba történt a MXit-tel. (olvasási állapot: 0x01)" #. connection closed msgid "A connection error occurred to MXit. (read stage 0x02)" -msgstr "" +msgstr "Kapcsolathiba történt a MXit-tel. (olvasási állapot: 0x02)" msgid "A connection error occurred to MXit. (read stage 0x03)" -msgstr "" +msgstr "Kapcsolathiba történt a MXit-tel. (olvasási állapot: 0x03)" #. malformed packet length record (too long) msgid "A connection error occurred to MXit. (read stage 0x04)" -msgstr "" +msgstr "Kapcsolathiba történt a MXit-tel. (olvasási állapot: 0x04)" #. connection error msgid "A connection error occurred to MXit. (read stage 0x05)" -msgstr "" +msgstr "Kapcsolathiba történt a MXit-tel. (olvasási állapot: 0x05)" #. connection closed msgid "A connection error occurred to MXit. (read stage 0x06)" -msgstr "" - -msgid "Angry" -msgstr "Dühös" - -msgid "Excited" -msgstr "Érdeklődő" - -#, fuzzy -msgid "Grumpy" -msgstr "Csoport" - -msgid "Happy" -msgstr "Boldog" - -msgid "In Love" -msgstr "Szerelmes" - -msgid "Invincible" -msgstr "Legyőzhetetlen" - -msgid "Sad" -msgstr "Szomorú" - -#, fuzzy -msgid "Hot" -msgstr "_Gépnév:" - -#, fuzzy -msgid "Sick" -msgstr "Becenév" - -msgid "Sleepy" -msgstr "Álmos" - -#, fuzzy +msgstr "Kapcsolathiba történt a MXit-tel. (olvasási állapot: 0x06)" + msgid "Pending" -msgstr "Küldés" - -#, fuzzy +msgstr "Függőben" + msgid "Invited" -msgstr "Meghívás" - -#, fuzzy +msgstr "Meghívva" + msgid "Rejected" -msgstr "Visszautasítás" - -#, fuzzy +msgstr "Visszautasítva" + msgid "Deleted" -msgstr "Törlés" +msgstr "Törölve" msgid "MXit Advertising" -msgstr "" - -#, fuzzy +msgstr "MXit hirdetés" + msgid "More Information" -msgstr "Munkahelyi adatok" +msgstr "További információk" #, c-format msgid "No such user: %s" @@ -6866,46 +6864,42 @@ msgstr "Nem, amíg az AOL-on tartózkodik" msgid "Cannot receive IM due to parental controls" -msgstr "" +msgstr "Nem fogadható üzenet a szülői felügyelet miatt" msgid "Cannot send SMS without accepting terms" -msgstr "" - -#, fuzzy +msgstr "Nem küldhető SMS a feltételek elfogadása nélkül" + msgid "Cannot send SMS" -msgstr "A fájl nem küldhető el" +msgstr "Nem küldhető SMS" #. SMS_WITHOUT_DISCLAIMER is weird -#, fuzzy msgid "Cannot send SMS to this country" -msgstr "Könyvtár nem küldhető." +msgstr "Nem küldhető SMS ebbe az országba" #. Undocumented msgid "Cannot send SMS to unknown country" -msgstr "" +msgstr "Nem küldhető SMS ismeretlen országba" msgid "Bot accounts cannot initiate IMs" -msgstr "" +msgstr "Botfiókok nem kezdeményezhetnek azonnali üzenetküldést" msgid "Bot account cannot IM this user" -msgstr "" +msgstr "Botfiókok nem küldhetnek azonnali üzenetet a felhasználónak" msgid "Bot account reached IM limit" -msgstr "" +msgstr "A botfiók elérte az azonnali üzenetek korlátját" msgid "Bot account reached daily IM limit" -msgstr "" +msgstr "A botfiók elérte a napi azonnali üzenetek korlátját" msgid "Bot account reached monthly IM limit" -msgstr "" - -#, fuzzy +msgstr "A botfiók elérte a havi azonnali üzenetek korlátját" + msgid "Unable to receive offline messages" -msgstr "Az üzenetet nem lehet elküldeni." - -#, fuzzy +msgstr "Nem lehet offline üzeneteket fogadni" + msgid "Offline message store full" -msgstr "Offline üzenet" +msgstr "Az offline üzenetek tárolója megtelt" msgid "" "(There was an error receiving this message. The buddy you are speaking with " @@ -7076,14 +7070,13 @@ msgstr "Az AOL azonnali üzenő szolgáltatás átmenetileg nem érhető el." #. username connecting too frequently -#, fuzzy msgid "" "Your username has been connecting and disconnecting too frequently. Wait ten " "minutes and try again. If you continue to try, you will need to wait even " "longer." msgstr "" -"Ön túl gyakran jelentkezik ki/be. Várjon tíz percet és próbálja meg újra. Ha " -"tovább folytatja, még többet kell majd várnia." +"A felhasználóneve túl gyakran jelentkezik ki/be. Várjon tíz percet és " +"próbálja meg újra. Ha tovább próbálkozik, még többet kell majd várnia." #. client too old #, c-format @@ -7093,14 +7086,13 @@ "következő helyről: %s" #. IP address connecting too frequently -#, fuzzy msgid "" "Your IP address has been connecting and disconnecting too frequently. Wait a " "minute and try again. If you continue to try, you will need to wait even " "longer." msgstr "" -"Ön túl gyakran jelentkezik ki/be. Várjon egy percet és próbálja meg újra. Ha " -"tovább folytatja, még többet kell majd várnia." +"Az IP-címe túl gyakran jelentkezik ki/be. Várjon egy percet és próbálja meg " +"újra. Ha tovább próbálkozik, még többet kell majd várnia." msgid "The SecurID key entered is invalid" msgstr "A megadott SecurID kulcs érvénytelen" @@ -7254,21 +7246,21 @@ msgstr[0] "Nem kapott meg %hu üzenetet a következőtől: %s, ismeretlen okból." msgstr[1] "Nem kapott meg %hu üzenetet a következőtől: %s, ismeretlen okból." -#, fuzzy, c-format +#, c-format msgid "Unable to send message: %s (%s)" -msgstr "Az üzenetet nem lehet elküldeni (%s)." +msgstr "Az üzenetet nem lehet elküldeni: %s (%s)" #, c-format msgid "Unable to send message: %s" msgstr "Az üzenetet nem lehet elküldeni: %s" -#, fuzzy, c-format +#, c-format msgid "Unable to send message to %s: %s (%s)" -msgstr "Az üzenetet nem lehet elküldeni a következőnek: %s:" - -#, fuzzy, c-format +msgstr "Az üzenetet nem lehet elküldeni a következőnek: %s: %s (%s)" + +#, c-format msgid "Unable to send message to %s: %s" -msgstr "Az üzenetet nem lehet elküldeni a következőnek: %s:" +msgstr "Az üzenetet nem lehet elküldeni a következőnek: %s: %s" #, c-format msgid "User information not available: %s" @@ -7297,13 +7289,12 @@ "[Nem lehet megjeleníteni az üzenetet ettől a felhasználótól, mert az " "érvénytelen karaktereket tartalmazott.]" -#, fuzzy msgid "" "The last action you attempted could not be performed because you are over " "the rate limit. Please wait 10 seconds and try again.\n" msgstr "" -"Az utolsó művelet nem hajtható végre, mert a túllépte a sebességkorlátot. " -"Kérem várjon 10 másodpercet és próbálja meg újra." +"Az utolsó művelet nem hajtható végre, mert túllépte a sebességkorlátot. " +"Kérem várjon 10 másodpercet és próbálja meg újra.\n" #, c-format msgid "You have been disconnected from chat room %s." @@ -10169,13 +10160,13 @@ msgstr "Bejövő levelek megnyitása" msgid "Can't send SMS. Unable to obtain mobile carrier." -msgstr "" +msgstr "Nem küldhető SMS. Nem található mobilszolgáltató." msgid "Can't send SMS. Unknown mobile carrier." -msgstr "" +msgstr "Nem küldhető SMS. Ismeretlen mobilszolgáltató." msgid "Getting mobile carrier to send the SMS." -msgstr "" +msgstr "Mobilszolgáltató keresése az SMS elküldéséhez." #. Write a local message to this conversation showing that a request for a #. * Doodle session has been made @@ -10717,6 +10708,8 @@ msgid "" "Chat over IM. Supports AIM, Google Talk, Jabber/XMPP, MSN, Yahoo and more" msgstr "" +"Azonnali üzenetküldés AIM, Google Talk, Jabber/XMPP, MSN, Yahoo és más " +"protokollok támogatásával" msgid "Internet Messenger" msgstr "Azonnali üzenetküldés" @@ -11986,6 +11979,9 @@ msgid "Mongolian" msgstr "Mongol" +msgid "Malay" +msgstr "Maláj" + msgid "Bokmål Norwegian" msgstr "Norvég Bokmål" @@ -12055,6 +12051,9 @@ msgid "Turkish" msgstr "török" +msgid "Ukranian" +msgstr "Ukrán" + msgid "Urdu" msgstr "urdu" @@ -12688,7 +12687,7 @@ "\n" msgid "DIR" -msgstr "" +msgstr "KÖNYVTÁR" msgid "use DIR for config files" msgstr "a KÖNYVTÁR használata a beállítófájlokhoz" @@ -12709,16 +12708,16 @@ msgstr "ne jelentkezzen be automatikusan" msgid "NAME" -msgstr "" - -#, fuzzy +msgstr "NÉV" + msgid "" "enable specified account(s) (optional argument NAME\n" " specifies account(s) to use, separated by commas.\n" " Without this only the first account will be enabled)." msgstr "" -"automatikus bejelentkezés (a NÉV paraméter megadja a\n" -" használandó fiókok vesszőkkel tagolt listáját." +"adott fiókok engedélyezése (a NÉV paraméter megadja a\n" +" használandó fiókok vesszőkkel tagolt listáját.\n" +" Enélkül csak az első fiók lesz engedélyezve." msgid "X display to use" msgstr "Használandó X-megjelenítő" @@ -12981,21 +12980,19 @@ msgstr "Ismeretlen… Kérjük jelentse ezt!" msgid "(Custom)" -msgstr "" - -#, fuzzy -msgid "(Default)" -msgstr "(alapértelmezett)" +msgstr "(Egyéni)" + +msgid "Penguin Pimps" +msgstr "Penguin Pimps" msgid "The default Pidgin sound theme" -msgstr "" - -#, fuzzy +msgstr "Az alapértelmezett Pidgin hangtéma" + msgid "The default Pidgin buddy list theme" -msgstr "Pidgin partnerlistatéma-szerkesztő" +msgstr "Az alapértelmezett Pidgin partnerlistatéma" msgid "The default Pidgin status icon theme" -msgstr "" +msgstr "Az alapértelmezett Pidgin állapotikon-téma" msgid "Theme failed to unpack." msgstr "A téma kicsomagolása meghiúsult." @@ -13006,18 +13003,29 @@ msgid "Theme failed to copy." msgstr "A téma másolása meghiúsult." -msgid "Install Theme" -msgstr "Téma telepítése" - -msgid "" -"Select a smiley theme that you would like to use from the list below. New " -"themes can be installed by dragging and dropping them onto the theme list." -msgstr "" -"Válassza ki a használni kívánt hangulatjel-témát az alábbi listából. Új " -"témák a témalistába dobással telepíthetők." - -msgid "Icon" -msgstr "Ikon" +msgid "Theme Selections" +msgstr "Témaválasztás" + +#. Instructions +msgid "" +"Select a theme that you would like to use from the lists below.\n" +"New themes can be installed by dragging and dropping them onto the theme " +"list." +msgstr "" +"Válassza ki a használni kívánt témát az alábbi listákból.\n" +"Új témák a témalistába húzva telepíthetők." + +msgid "Buddy List Theme:" +msgstr "Partnerlistatéma:" + +msgid "Status Icon Theme:" +msgstr "Állapotikon-téma:" + +msgid "Sound Theme:" +msgstr "Hangtéma:" + +msgid "Smiley Theme:" +msgstr "Hangulatjel-téma:" msgid "Keyboard Shortcuts" msgstr "Gyorsbillentyűk" @@ -13025,10 +13033,6 @@ msgid "Cl_ose conversations with the Escape key" msgstr "Társalgások bezárása az _Escape billentyűvel" -#. Buddy List Themes -msgid "Buddy List Theme" -msgstr "Partnerlista-téma" - #. System Tray msgid "System Tray Icon" msgstr "Rendszertálca-ikon" @@ -13115,9 +13119,6 @@ msgid "Font" msgstr "Betűkészlet" -msgid "Use document font from _theme" -msgstr "A _téma dokumentum-betűkészletének használata" - msgid "Use font from _theme" msgstr "A téma _betűkészletének használata" @@ -13140,17 +13141,15 @@ msgid "Cannot start browser configuration program." msgstr "Nem indítható a böngészőkonfigurációs program." -#, fuzzy msgid "Disabled" -msgstr "_Tiltás" +msgstr "Tiltva" #, c-format msgid "Use _automatically detected IP address: %s" msgstr "Automatikusan felismert _IP cím használata: %s" -#, fuzzy msgid "ST_UN server:" -msgstr "_Kiszolgáló:" +msgstr "ST_UN kiszolgáló:" msgid "<span style=\"italic\">Example: stunserver.org</span>" msgstr "<span style=\"italic\">Például: stunserver.org</span>" @@ -13164,78 +13163,27 @@ msgid "_Enable automatic router port forwarding" msgstr "A_utomatikus útválasztóport-átirányítás" -#, fuzzy msgid "_Manually specify range of ports to listen on:" -msgstr "A figyelendő porttartomány _kézi megadása" - -#, fuzzy +msgstr "A figyelendő porttartomány _kézi megadása:" + msgid "_Start:" -msgstr "Áll_apot:" - -#, fuzzy +msgstr "Ke_zdete:" + msgid "_End:" -msgstr "_Kibontás" +msgstr "_Vége:" #. TURN server msgid "Relay Server (TURN)" msgstr "Továbbító kiszolgáló (TURN)" -#, fuzzy msgid "_TURN server:" -msgstr "_Kiszolgáló:" - -#, fuzzy +msgstr "_TURN kiszolgáló:" + msgid "Use_rname:" -msgstr "Felhasználónév:" - -#, fuzzy +msgstr "_Felhasználónév:" + msgid "Pass_word:" -msgstr "Jelszó:" - -msgid "Proxy Server & Browser" -msgstr "Proxy-kiszolgáló és böngésző" - -msgid "<b>Proxy configuration program was not found.</b>" -msgstr "<b>A proxykonfigurációs program nem található.</b>" - -msgid "<b>Browser configuration program was not found.</b>" -msgstr "<b>A böngészőkonfigurációs program nem található.</b>" - -msgid "" -"Proxy & Browser preferences are configured\n" -"in GNOME Preferences" -msgstr "" -"A proxy és böngésző a GNOME beállításaiban\n" -"vannak konfigurálva" - -msgid "Configure _Proxy" -msgstr "_Proxy beállítása" - -msgid "Configure _Browser" -msgstr "Bö_ngésző beállítása" - -msgid "Proxy Server" -msgstr "Proxy-kiszolgáló" - -#. This is a global option that affects SOCKS4 usage even with account-specific proxy settings -#, fuzzy -msgid "Use remote _DNS with SOCKS4 proxies" -msgstr "Távoli DNS használata SOCKS4 proxykkal" - -#, fuzzy -msgid "Proxy t_ype:" -msgstr "Proxy _típusa:" - -msgid "No proxy" -msgstr "Nincs Proxy" - -#, fuzzy -msgid "P_ort:" -msgstr "_Port:" - -#, fuzzy -msgid "User_name:" -msgstr "Felhasználónév:" +msgstr "_Jelszó:" msgid "Seamonkey" msgstr "Seamonkey" @@ -13276,6 +13224,15 @@ msgid "Browser Selection" msgstr "Böngészőválasztás" +msgid "Browser preferences are configured in GNOME preferences" +msgstr "A böngésző beállításai a GNOME beállításaiban vannak megadva" + +msgid "<b>Browser configuration program was not found.</b>" +msgstr "<b>A böngészőkonfigurációs program nem található.</b>" + +msgid "Configure _Browser" +msgstr "Bö_ngésző beállítása" + msgid "_Browser:" msgstr "_Böngésző:" @@ -13299,6 +13256,35 @@ "_Kézi:\n" "(%s az URL-hez)" +msgid "Proxy Server" +msgstr "Proxy-kiszolgáló" + +msgid "Proxy preferences are configured in GNOME preferences" +msgstr "A proxy beállításai a GNOME beállításaiban vannak megadva" + +msgid "<b>Proxy configuration program was not found.</b>" +msgstr "<b>A proxykonfigurációs program nem található.</b>" + +msgid "Configure _Proxy" +msgstr "_Proxy beállítása" + +#. This is a global option that affects SOCKS4 usage even with +#. * account-specific proxy settings +msgid "Use remote _DNS with SOCKS4 proxies" +msgstr "Távoli _DNS használata SOCKS4 proxykkal" + +msgid "Proxy t_ype:" +msgstr "Proxy _típusa:" + +msgid "No proxy" +msgstr "Nincs Proxy" + +msgid "P_ort:" +msgstr "P_ort:" + +msgid "User_name:" +msgstr "_Felhasználónév:" + msgid "Log _format:" msgstr "Napló_formátum:" @@ -13382,25 +13368,18 @@ msgid "Based on keyboard or mouse use" msgstr "Billentyűzet vagy egér használata alapján" +msgid "_Minutes before becoming idle:" +msgstr "Üresjárat ennyi _perc után:" + +msgid "Change to this status when _idle:" +msgstr "Állapot módosítása erre, _ha inaktív:" + msgid "_Auto-reply:" msgstr "_Automatikus válasz:" msgid "When both away and idle" msgstr "Ha távol van és inaktív" -#. Auto-away stuff -msgid "Auto-away" -msgstr "Automatikus távollét" - -msgid "_Minutes before becoming idle:" -msgstr "Üresjárat ennyi _perc után:" - -msgid "Change status when _idle" -msgstr "Állapot módosítása, _ha inaktív" - -msgid "Change _status to:" -msgstr "Állap_ot módosítása a következőre:" - #. Signon status stuff msgid "Status at Startup" msgstr "Állapot induláskor" @@ -13414,15 +13393,15 @@ msgid "Interface" msgstr "Felület" -msgid "Smiley Themes" -msgstr "Hangulatjel-témák" - msgid "Browser" msgstr "Böngésző" msgid "Status / Idle" msgstr "Állapot / Inaktív" +msgid "Themes" +msgstr "Témák" + msgid "Allow all users to contact me" msgstr "Mindenki kapcsolatba léphet velem" @@ -13770,9 +13749,6 @@ msgid "Pidgin smileys" msgstr "Pidgin hangulatjelek" -msgid "Penguin Pimps" -msgstr "Penguin Pimps" - msgid "Selecting this disables graphical emoticons." msgstr "Ennek kiválasztása letiltja a grafikus hangulatjeleket." @@ -14414,6 +14390,9 @@ msgid "Conversation Entry" msgstr "Társalgás beviteli mező" +msgid "Conversation History" +msgstr "Társalgáselőzmények" + msgid "Request Dialog" msgstr "Kérdés párbeszédablak" @@ -14879,9 +14858,8 @@ msgid "_Start %s on Windows startup" msgstr "A %s indítá_sa a Windows indulásakor" -#, fuzzy msgid "Allow multiple instances" -msgstr "több példány engedélyezése" +msgstr "Több példány engedélyezése" msgid "_Dockable Buddy List" msgstr "_Dokkolható partnerlista" @@ -14944,25 +14922,3 @@ msgstr "" "Ez a bővítmény XMPP kiszolgálókban vagy kliensekben végzett hibakereséshez " "hasznos." - -#, fuzzy -#~ msgid "The root certificate this one claims to be issued by is unknown." -#~ msgstr "A tanúsítványt kiadó gyökértanúsítványt a Pidgin nem ismeri." - -#~ msgid "Send instant messages over multiple protocols" -#~ msgstr "Azonnali üzenetek küldése több protokoll használatával" - -#~ msgid "_Start port:" -#~ msgstr "_Első port:" - -#~ msgid "_End port:" -#~ msgstr "_Utolsó port:" - -#~ msgid "_User:" -#~ msgstr "_Felhasználó:" - -#~ msgid "GTK+ Runtime Version" -#~ msgstr "GTK+ runtime verzió" - -#~ msgid "Without this only the first account will be enabled)." -#~ msgstr "Enélkül csak az első fiók lesz engedélyezve)."