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)