diff -r 401639413340 -r ceada40bbe20 mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Fri Jun 22 19:21:23 2007 +0200 +++ b/mcabber/src/jabglue.c Fri Jun 22 20:24:19 2007 +0200 @@ -335,15 +335,30 @@ { xmlnode y; const char *ver = entity_version(); + char *exts, *exts2; + + exts = NULL; y = xmlnode_insert_tag(x, "c"); xmlnode_put_attrib(y, "xmlns", NS_CAPS); xmlnode_put_attrib(y, "node", MCABBER_CAPS_NODE); xmlnode_put_attrib(y, "ver", ver); #ifdef JEP0085 - if (!chatstates_disabled) - xmlnode_put_attrib(y, "ext", "csn"); + if (!chatstates_disabled) { + exts2 = g_strjoin(" ", "csn", exts, NULL); + g_free(exts); + exts = exts2; + } #endif + if (!settings_opt_get_int("iq_last_disable")) { + exts2 = g_strjoin(" ", "iql", exts, NULL); + g_free(exts); + exts = exts2; + } + if (exts) { + xmlnode_put_attrib(y, "ext", exts); + g_free(exts); + } } static void roompresence(gpointer room, void *presencedata)