292 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
292 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
293 } |
293 } |
294 |
294 |
295 static void _callback_foreach_buddy_groupchat(gpointer rosterdata, void *param) |
295 static void _callback_foreach_buddy_groupchat(gpointer rosterdata, void *param) |
296 { |
296 { |
297 LmMessageNode *field, *value, *option; |
297 LmMessageNode *field, *option; |
298 const char *room_jid, *nickname; |
298 const char *room_jid, *nickname; |
299 char *desc; |
299 char *desc; |
300 |
300 |
301 room_jid = buddy_getjid(rosterdata); |
301 room_jid = buddy_getjid(rosterdata); |
302 if (!room_jid) return; |
302 if (!room_jid) return; |
303 nickname = buddy_getnickname(rosterdata); |
303 nickname = buddy_getnickname(rosterdata); |
304 if (!nickname) return; |
304 if (!nickname) return; |
305 field = param; |
305 field = param; |
306 |
306 |
307 option = lm_message_node_add_child(field, "option", NULL); |
307 option = lm_message_node_add_child(field, "option", NULL); |
308 value = lm_message_node_add_child(option, "value", room_jid); |
308 lm_message_node_add_child(option, "value", room_jid); |
309 desc = g_strdup_printf("%s on %s", nickname, room_jid); |
309 desc = g_strdup_printf("%s on %s", nickname, room_jid); |
310 lm_message_node_set_attribute(option, "label", desc); |
310 lm_message_node_set_attribute(option, "label", desc); |
311 g_free(desc); |
311 g_free(desc); |
312 } |
312 } |
313 |
313 |