| 228 |
228 |
| 229 if(prpl) |
229 if(prpl) |
| 230 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
230 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
| 231 |
231 |
| 232 if(b && prpl_info && prpl_info->alias_buddy) { |
232 if(b && prpl_info && prpl_info->alias_buddy) { |
| 233 prpl_info->alias_buddy(gc, b->name, b->alias); |
233 prpl_info->alias_buddy(gc, purple_buddy_get_name(b), purple_buddy_get_alias(b)); |
| 234 } |
234 } |
| 235 } |
235 } |
| 236 |
236 |
| 237 void |
237 void |
| 238 serv_got_alias(PurpleConnection *gc, const char *who, const char *alias) |
238 serv_got_alias(PurpleConnection *gc, const char *who, const char *alias) |
| 245 account = purple_connection_get_account(gc); |
245 account = purple_connection_get_account(gc); |
| 246 buddies = purple_find_buddies(account, who); |
246 buddies = purple_find_buddies(account, who); |
| 247 |
247 |
| 248 while (buddies != NULL) |
248 while (buddies != NULL) |
| 249 { |
249 { |
| |
250 const gchar *server_alias = purple_buddy_get_server_alias(b); |
| |
251 |
| 250 b = buddies->data; |
252 b = buddies->data; |
| 251 buddies = g_slist_delete_link(buddies, buddies); |
253 buddies = g_slist_delete_link(buddies, buddies); |
| 252 |
254 |
| 253 if((b->server_alias == NULL && alias == NULL) || |
255 if((server_alias == NULL && alias == NULL) || |
| 254 (b->server_alias && alias && !strcmp(b->server_alias, alias))) |
256 (server_alias && alias && !strcmp(server_alias, alias))) |
| 255 { |
257 { |
| 256 continue; |
258 continue; |
| 257 } |
259 } |
| 258 |
260 |
| 259 purple_blist_server_alias_buddy(b, alias); |
261 purple_blist_server_alias_buddy(b, alias); |
| 260 |
262 |
| 261 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, b->name, account); |
263 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, purple_buddy_get_name(b), account); |
| 262 if(conv != NULL && alias != NULL && strcmp(alias, who)) |
264 if(conv != NULL && alias != NULL && strcmp(alias, who)) |
| 263 { |
265 { |
| 264 char *escaped = g_markup_escape_text(who, -1); |
266 char *escaped = g_markup_escape_text(who, -1); |
| 265 char *escaped2 = g_markup_escape_text(alias, -1); |
267 char *escaped2 = g_markup_escape_text(alias, -1); |
| 266 char *tmp = g_strdup_printf(_("%s is now known as %s.\n"), |
268 char *tmp = g_strdup_printf(_("%s is now known as %s.\n"), |
| 286 |
288 |
| 287 account = purple_connection_get_account(gc); |
289 account = purple_connection_get_account(gc); |
| 288 buddies = purple_find_buddies(account, who); |
290 buddies = purple_find_buddies(account, who); |
| 289 |
291 |
| 290 while(buddies != NULL) { |
292 while(buddies != NULL) { |
| |
293 const gchar *balias = purple_buddy_get_alias(b); |
| 291 b = buddies->data; |
294 b = buddies->data; |
| 292 |
295 |
| 293 buddies = g_slist_delete_link(buddies, buddies); |
296 buddies = g_slist_delete_link(buddies, buddies); |
| 294 |
297 |
| 295 if((!b->alias && !alias) || (b->alias && alias && !strcmp(b->alias, alias))) |
298 if((!balias && !alias) || (balias && alias && !strcmp(balias, alias))) |
| 296 continue; |
299 continue; |
| 297 |
300 |
| 298 purple_blist_alias_buddy(b, alias); |
301 purple_blist_alias_buddy(b, alias); |
| 299 } |
302 } |
| 300 } |
303 } |
| 364 if(prpl) |
367 if(prpl) |
| 365 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
368 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
| 366 |
369 |
| 367 if(gc && og && ng) { |
370 if(gc && og && ng) { |
| 368 if (prpl_info && prpl_info->group_buddy) { |
371 if (prpl_info && prpl_info->group_buddy) { |
| 369 prpl_info->group_buddy(gc, b->name, og->name, ng->name); |
372 prpl_info->group_buddy(gc, purple_buddy_get_name(b), |
| |
373 purple_group_get_name(og), |
| |
374 purple_group_get_name(ng)); |
| 370 } |
375 } |
| 371 } |
376 } |
| 372 } |
377 } |
| 373 |
378 |
| 374 void serv_add_permit(PurpleConnection *gc, const char *name) |
379 void serv_add_permit(PurpleConnection *gc, const char *name) |