From: <fac...@us...> - 2006-12-07 06:03:49
|
Revision: 17909 http://svn.sourceforge.net/gaim/?rev=17909&view=rev Author: faceprint Date: 2006-12-06 21:57:53 -0800 (Wed, 06 Dec 2006) Log Message: ----------- fix 1586525 Modified Paths: -------------- trunk/gtk/gtkroomlist.c trunk/libgaim/protocols/gg/gg.c trunk/libgaim/protocols/irc/irc.c trunk/libgaim/protocols/jabber/chat.c trunk/libgaim/protocols/jabber/chat.h trunk/libgaim/protocols/jabber/jabber.c trunk/libgaim/protocols/msn/msn.c trunk/libgaim/protocols/novell/novell.c trunk/libgaim/protocols/oscar/libaim.c trunk/libgaim/protocols/oscar/libicq.c trunk/libgaim/protocols/qq/qq.c trunk/libgaim/protocols/simple/simple.c trunk/libgaim/protocols/yahoo/yahoo.c trunk/libgaim/protocols/zephyr/zephyr.c trunk/libgaim/prpl.h Modified: trunk/gtk/gtkroomlist.c =================================================================== --- trunk/gtk/gtkroomlist.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/gtk/gtkroomlist.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -199,7 +199,21 @@ static void do_add_room_cb(GtkWidget *w, struct _menu_cb_info *info) { - gaim_blist_request_add_chat(info->list->account, NULL, NULL, info->room->name); + char *name; + GaimConnection *gc = gaim_account_get_connection(info->list->account); + GaimPluginProtocolInfo *prpl_info = NULL; + + if(gc != NULL) + prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); + + if(prpl_info != NULL && prpl_info->roomlist_room_serialize) + name = prpl_info->roomlist_room_serialize(info->room); + else + name = g_strdup(info->room->name); + + gaim_blist_request_add_chat(info->list->account, NULL, NULL, name); + + g_free(name); } static void add_room_to_blist_cb(GtkButton *button, GaimGtkRoomlistDialog *dialog) Modified: trunk/libgaim/protocols/gg/gg.c =================================================================== --- trunk/libgaim/protocols/gg/gg.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/gg/gg.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -2119,6 +2119,7 @@ ggp_offline_message, /* offline_message */ NULL, /* whiteboard_prpl_ops */ NULL, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; /* }}} */ Modified: trunk/libgaim/protocols/irc/irc.c =================================================================== --- trunk/libgaim/protocols/irc/irc.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/irc/irc.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -868,7 +868,8 @@ irc_dccsend_new_xfer, /* new_xfer */ NULL, /* offline_message */ NULL, /* whiteboard_prpl_ops */ - irc_send_raw, /* send_raw */ + irc_send_raw, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; static gboolean load_plugin (GaimPlugin *plugin) { Modified: trunk/libgaim/protocols/jabber/chat.c =================================================================== --- trunk/libgaim/protocols/jabber/chat.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/jabber/chat.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -84,6 +84,8 @@ g_hash_table_insert(defaults, "room", g_strdup(jid->node)); if(jid->domain) g_hash_table_replace(defaults, "server", g_strdup(jid->domain)); + if(jid->resource) + g_hash_table_replace(defaults, "handle", g_strdup(jid->resource)); jabber_id_free(jid); } } @@ -749,6 +751,12 @@ jabber_iq_send(iq); } +char *jabber_roomlist_room_serialize(GaimRoomlistRoom *room) +{ + + return g_strdup_printf("%s@%s", (char*)room->fields->data, (char*)room->fields->next->data); +} + GaimRoomlist *jabber_roomlist_get_list(GaimConnection *gc) { JabberStream *js = gc->proto_data; Modified: trunk/libgaim/protocols/jabber/chat.h =================================================================== --- trunk/libgaim/protocols/jabber/chat.h 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/jabber/chat.h 2006-12-07 05:57:53 UTC (rev 17909) @@ -89,5 +89,7 @@ void jabber_chat_disco_traffic(JabberChat *chat); +char *jabber_roomlist_room_serialize(GaimRoomlistRoom *room); + #endif /* _GAIM_JABBER_CHAT_H_ */ Modified: trunk/libgaim/protocols/jabber/jabber.c =================================================================== --- trunk/libgaim/protocols/jabber/jabber.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/jabber/jabber.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -1902,6 +1902,7 @@ jabber_offline_message, /* offline_message */ NULL, /* whiteboard_prpl_ops */ jabber_prpl_send_raw, /* send_raw */ + jabber_roomlist_room_serialize, /* roomlist_room_serialize */ }; static gboolean load_plugin(GaimPlugin *plugin) Modified: trunk/libgaim/protocols/msn/msn.c =================================================================== --- trunk/libgaim/protocols/msn/msn.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/msn/msn.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -2013,6 +2013,7 @@ NULL, /* offline_message */ NULL, /* whiteboard_prpl_ops */ NULL, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; static GaimPluginInfo info = Modified: trunk/libgaim/protocols/novell/novell.c =================================================================== --- trunk/libgaim/protocols/novell/novell.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/novell/novell.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -3534,6 +3534,8 @@ NULL, /* offline_message */ NULL, /* whiteboard_prpl_ops */ NULL, /* send_raw */ + NULL, /* roomlist_room_serialize */ + }; static GaimPluginInfo info = { Modified: trunk/libgaim/protocols/oscar/libaim.c =================================================================== --- trunk/libgaim/protocols/oscar/libaim.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/oscar/libaim.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -89,7 +89,8 @@ oscar_new_xfer, /* new_xfer */ oscar_offline_message, /* offline_message */ NULL, /* whiteboard_prpl_ops */ - NULL, /* send_raw */ + NULL, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; static GaimPluginInfo info = Modified: trunk/libgaim/protocols/oscar/libicq.c =================================================================== --- trunk/libgaim/protocols/oscar/libicq.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/oscar/libicq.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -90,7 +90,8 @@ oscar_new_xfer, /* new_xfer */ oscar_offline_message, /* offline_message */ NULL, /* whiteboard_prpl_ops */ - NULL, /* send_raw */ + NULL, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; static GaimPluginInfo info = Modified: trunk/libgaim/protocols/qq/qq.c =================================================================== --- trunk/libgaim/protocols/qq/qq.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/qq/qq.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -695,6 +695,7 @@ NULL, /* offline_message */ NULL, /* GaimWhiteboardPrplOps */ NULL, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; static GaimPluginInfo info = { Modified: trunk/libgaim/protocols/simple/simple.c =================================================================== --- trunk/libgaim/protocols/simple/simple.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/simple/simple.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -1794,7 +1794,8 @@ NULL, /* new_xfer */ NULL, /* offline_message */ NULL, /* whiteboard_prpl_ops */ - simple_send_raw, /* send_raw */ + simple_send_raw, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; Modified: trunk/libgaim/protocols/yahoo/yahoo.c =================================================================== --- trunk/libgaim/protocols/yahoo/yahoo.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/yahoo/yahoo.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -3878,7 +3878,8 @@ yahoo_new_xfer, yahoo_offline_message, /* offline_message */ &yahoo_whiteboard_prpl_ops, - NULL /* send_raw */ + NULL, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; static GaimPluginInfo info = Modified: trunk/libgaim/protocols/zephyr/zephyr.c =================================================================== --- trunk/libgaim/protocols/zephyr/zephyr.c 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/protocols/zephyr/zephyr.c 2006-12-07 05:57:53 UTC (rev 17909) @@ -2916,6 +2916,7 @@ NULL, /* offline_message */ NULL, /* whiteboard_prpl_ops */ NULL, /* send_raw */ + NULL, /* roomlist_room_serialize */ }; static GaimPluginInfo info = { Modified: trunk/libgaim/prpl.h =================================================================== --- trunk/libgaim/prpl.h 2006-12-07 04:25:29 UTC (rev 17908) +++ trunk/libgaim/prpl.h 2006-12-07 05:57:53 UTC (rev 17909) @@ -301,6 +301,9 @@ /* For use in plugins that may understand the underlying protocol */ int (*send_raw)(GaimConnection *gc, const char *buf, int len); + + /* room list serialize */ + char *(*roomlist_room_serialize)(GaimRoomlistRoom *room); }; #define GAIM_IS_PROTOCOL_PLUGIN(plugin) \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |