Mercurial > pidgin.yaz
comparison libpurple/protocols/msn/msn.c @ 27888:0ee06de49812
propagate from branch 'im.pidgin.pidgin' (head 254e5a24031a74103097db812ae3e723d696c11d)
to branch 'im.pidgin.pidgin.yaz' (head c47fec84fcf525e809cf4b54bca2340813069bc4)
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 08 Sep 2008 04:49:36 +0000 |
parents | 0a4aa7df352b 0529d26b6154 |
children | d515f6c5e6f2 |
comparison
equal
deleted
inserted
replaced
24007:8777560c1d9f | 27888:0ee06de49812 |
---|---|
173 { | 173 { |
174 MsnCmdProc *cmdproc; | 174 MsnCmdProc *cmdproc; |
175 MsnSession *session; | 175 MsnSession *session; |
176 PurpleAccount *account; | 176 PurpleAccount *account; |
177 const char *alias; | 177 const char *alias; |
178 gchar *tmp; | |
179 gsize dummy; | |
178 | 180 |
179 session = gc->proto_data; | 181 session = gc->proto_data; |
180 cmdproc = session->notification->cmdproc; | 182 cmdproc = session->notification->cmdproc; |
181 account = purple_connection_get_account(gc); | 183 account = purple_connection_get_account(gc); |
182 | 184 |
183 if(entry && strlen(entry)) | 185 if(entry && strlen(entry)) { |
184 alias = purple_url_encode(entry); | 186 tmp = botch_utf(entry, strlen(entry), &dummy); |
187 alias = purple_url_encode(tmp); | |
188 g_free(tmp); | |
189 } | |
185 else | 190 else |
186 alias = ""; | 191 alias = ""; |
187 | 192 |
188 if (strlen(alias) > BUDDY_ALIAS_MAXLEN) | 193 if (strlen(alias) > BUDDY_ALIAS_MAXLEN) |
189 { | 194 { |
195 if (*alias == '\0') { | 200 if (*alias == '\0') { |
196 alias = purple_url_encode(purple_account_get_username(account)); | 201 alias = purple_url_encode(purple_account_get_username(account)); |
197 } | 202 } |
198 | 203 |
199 msn_cmdproc_send(cmdproc, "PRP", "MFN %s", alias); | 204 msn_cmdproc_send(cmdproc, "PRP", "MFN %s", alias); |
205 // propagate change on server side to local --yaz | |
206 purple_account_set_alias(account, entry); //oct16 <-- XXX questionable. Sep19. | |
200 | 207 |
201 } | 208 } |
202 | 209 |
203 static void | 210 static void |
204 msn_set_prp(PurpleConnection *gc, const char *type, const char *entry) | 211 msn_set_prp(PurpleConnection *gc, const char *type, const char *entry) |
320 purple_connection_get_display_name(gc), FALSE, FALSE, NULL, | 327 purple_connection_get_display_name(gc), FALSE, FALSE, NULL, |
321 _("OK"), G_CALLBACK(msn_act_id), | 328 _("OK"), G_CALLBACK(msn_act_id), |
322 _("Cancel"), NULL, | 329 _("Cancel"), NULL, |
323 purple_connection_get_account(gc), NULL, NULL, | 330 purple_connection_get_account(gc), NULL, NULL, |
324 gc); | 331 gc); |
332 } | |
333 | |
334 static void | |
335 msn_ipc_init(PurplePlugin *plugin) | |
336 { | |
337 purple_plugin_ipc_register(plugin, "msn_set_friendly_name", | |
338 PURPLE_CALLBACK(msn_act_id), | |
339 purple_marshal_VOID__POINTER_POINTER, | |
340 purple_value_new(PURPLE_TYPE_UNKNOWN),2, | |
341 purple_value_new(PURPLE_TYPE_POINTER), | |
342 purple_value_new(PURPLE_TYPE_POINTER)); | |
343 } | |
344 | |
345 static void | |
346 msn_ipc_end(PurplePlugin *plugin) | |
347 { | |
348 purple_plugin_ipc_unregister_all(plugin); | |
325 } | 349 } |
326 | 350 |
327 static void | 351 static void |
328 msn_show_set_home_phone(PurplePluginAction *action) | 352 msn_show_set_home_phone(PurplePluginAction *action) |
329 { | 353 { |
2385 { | 2409 { |
2386 msn_notification_init(); | 2410 msn_notification_init(); |
2387 msn_switchboard_init(); | 2411 msn_switchboard_init(); |
2388 msn_sync_init(); | 2412 msn_sync_init(); |
2389 | 2413 |
2414 // yaz | |
2415 msn_ipc_init(plugin); | |
2416 | |
2390 return TRUE; | 2417 return TRUE; |
2391 } | 2418 } |
2392 | 2419 |
2393 static gboolean msn_unload(PurplePlugin *plugin) | 2420 static gboolean msn_unload(PurplePlugin *plugin) |
2394 { | 2421 { |
2395 msn_notification_end(); | 2422 msn_notification_end(); |
2396 msn_switchboard_end(); | 2423 msn_switchboard_end(); |
2397 msn_sync_end(); | 2424 msn_sync_end(); |
2425 | |
2426 // yaz | |
2427 msn_ipc_end(plugin); | |
2398 | 2428 |
2399 return TRUE; | 2429 return TRUE; |
2400 } | 2430 } |
2401 | 2431 |
2402 static PurpleAccount *find_acct(const char *prpl, const char *acct_id) | 2432 static PurpleAccount *find_acct(const char *prpl, const char *acct_id) |