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