Mercurial > pidgin.yaz
comparison libpurple/server.c @ 27835:f9fd7ddf6996
propagate from branch 'im.pidgin.pidgin' (head 245104c3da64bf99627578bd68d6cda42ee16b43)
to branch 'im.pidgin.pidgin.yaz' (head 315daf3ce50ca525a9cccd85c5ef0b96dec0f162)
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Thu, 08 May 2008 00:27:54 +0000 |
parents | 2f05586afa12 |
children | acef4202e147 |
comparison
equal
deleted
inserted
replaced
22840:502bac8b2b4c | 27835:f9fd7ddf6996 |
---|---|
240 { | 240 { |
241 PurpleAccount *account; | 241 PurpleAccount *account; |
242 GSList *buddies; | 242 GSList *buddies; |
243 PurpleBuddy *b; | 243 PurpleBuddy *b; |
244 PurpleConversation *conv; | 244 PurpleConversation *conv; |
245 gsize dummy; | |
246 gchar *alias2 = NULL; | |
245 | 247 |
246 account = purple_connection_get_account(gc); | 248 account = purple_connection_get_account(gc); |
247 buddies = purple_find_buddies(account, who); | 249 buddies = purple_find_buddies(account, who); |
248 | 250 |
249 while (buddies != NULL) | 251 while (buddies != NULL) |
250 { | 252 { |
251 b = buddies->data; | 253 b = buddies->data; |
252 buddies = g_slist_delete_link(buddies, buddies); | 254 buddies = g_slist_delete_link(buddies, buddies); |
253 | 255 |
256 /* alias may be NULL */ | |
254 if((b->server_alias == NULL && alias == NULL) || | 257 if((b->server_alias == NULL && alias == NULL) || |
255 (b->server_alias && alias && !strcmp(b->server_alias, alias))) | 258 (b->server_alias && alias && !strcmp(b->server_alias, alias))) |
256 { | 259 { |
257 continue; | 260 continue; |
258 } | 261 } |
259 | 262 |
260 purple_blist_server_alias_buddy(b, alias); | 263 if(alias) |
264 alias2 = sanitize_utf(alias, strlen(alias), &dummy); | |
265 | |
266 purple_blist_server_alias_buddy(b, alias2); | |
261 | 267 |
262 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, b->name, account); | 268 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, b->name, account); |
263 if(conv != NULL && alias != NULL && strcmp(alias, who)) | 269 if(conv != NULL && alias2 != NULL && strcmp(alias2, who)) |
264 { | 270 { |
265 char *tmp = g_strdup_printf(_("%s is now known as %s.\n"), | 271 char *tmp = g_strdup_printf(_("%s is now known as %s.\n"), |
266 who, alias); | 272 who, alias2); |
267 | 273 |
268 purple_conversation_write(conv, NULL, tmp, | 274 purple_conversation_write(conv, NULL, tmp, |
269 PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NO_LINKIFY, | 275 PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NO_LINKIFY, |
270 time(NULL)); | 276 time(NULL)); |
271 | 277 |
272 g_free(tmp); | 278 g_free(tmp); |
273 } | 279 } |
280 g_free(alias2); | |
281 alias2 = NULL; | |
274 } | 282 } |
275 } | 283 } |
276 | 284 |
277 void | 285 void |
278 purple_serv_got_private_alias(PurpleConnection *gc, const char *who, const char *alias) | 286 purple_serv_got_private_alias(PurpleConnection *gc, const char *who, const char *alias) |
279 { | 287 { |
280 PurpleAccount *account = NULL; | 288 PurpleAccount *account = NULL; |
281 GSList *buddies = NULL; | 289 GSList *buddies = NULL; |
282 PurpleBuddy *b = NULL; | 290 PurpleBuddy *b = NULL; |
291 gsize dummy; | |
292 gchar *alias2 = NULL; | |
283 | 293 |
284 account = purple_connection_get_account(gc); | 294 account = purple_connection_get_account(gc); |
285 buddies = purple_find_buddies(account, who); | 295 buddies = purple_find_buddies(account, who); |
286 | 296 |
287 while(buddies != NULL) { | 297 while(buddies != NULL) { |
290 buddies = g_slist_delete_link(buddies, buddies); | 300 buddies = g_slist_delete_link(buddies, buddies); |
291 | 301 |
292 if((!b->alias && !alias) || (b->alias && alias && !strcmp(b->alias, alias))) | 302 if((!b->alias && !alias) || (b->alias && alias && !strcmp(b->alias, alias))) |
293 continue; | 303 continue; |
294 | 304 |
295 purple_blist_alias_buddy(b, alias); | 305 alias2 = sanitize_utf(alias, strlen(alias), &dummy); |
296 } | 306 purple_blist_alias_buddy(b, alias2); |
297 } | 307 g_free(alias2); |
298 | 308 alias2 = NULL; |
309 } | |
310 } | |
299 | 311 |
300 PurpleAttentionType *purple_get_attention_type_from_code(PurpleAccount *account, guint type_code) | 312 PurpleAttentionType *purple_get_attention_type_from_code(PurpleAccount *account, guint type_code) |
301 { | 313 { |
302 PurplePlugin *prpl; | 314 PurplePlugin *prpl; |
303 PurpleAttentionType* attn; | 315 PurpleAttentionType* attn; |