comparison pidgin/gtkconv.c @ 29500:6e9917e067e6

propagate from branch 'im.pidgin.pidgin' (head f881ba77d0fe70224a938185a5a3675b39520873) to branch 'im.pidgin.pidgin.next.minor' (head 91d04fec37b328ffc2e552ea14a5a520d27161f2)
author John Bailey <rekkanoryo@rekkanoryo.org>
date Wed, 16 Sep 2009 15:41:33 +0000
parents 48ea900ee72a f15b14df260d
children 0aac63e8489f
comparison
equal deleted inserted replaced
29498:df24cbb0d6e2 29500:6e9917e067e6
325 static PurpleCmdRet 325 static PurpleCmdRet
326 debug_command_cb(PurpleConversation *conv, 326 debug_command_cb(PurpleConversation *conv,
327 const char *cmd, char **args, char **error, void *data) 327 const char *cmd, char **args, char **error, void *data)
328 { 328 {
329 char *tmp, *markup; 329 char *tmp, *markup;
330 PurpleCmdStatus status;
331 330
332 if (!g_ascii_strcasecmp(args[0], "version")) { 331 if (!g_ascii_strcasecmp(args[0], "version")) {
333 tmp = g_strdup_printf("me is using Pidgin v%s with libpurple v%s.", 332 tmp = g_strdup_printf("Using Pidgin v%s with libpurple v%s.",
334 DISPLAY_VERSION, purple_core_get_version()); 333 DISPLAY_VERSION, purple_core_get_version());
335 markup = g_markup_escape_text(tmp, -1); 334 } else if (!g_ascii_strcasecmp(args[0], "plugins")) {
336 335 /* Show all the loaded plugins, including the protocol plugins and plugin loaders.
337 status = purple_cmd_do_command(conv, tmp, markup, error); 336 * This is intentional, since third party prpls are often sources of bugs, and some
338 337 * plugin loaders (e.g. mono) can also be buggy.
339 g_free(tmp); 338 */
340 g_free(markup); 339 GString *str = g_string_new("Loaded Plugins: ");
341 return status; 340 const GList *plugins = purple_plugins_get_loaded();
341 if (plugins) {
342 for (; plugins; plugins = plugins->next) {
343 str = g_string_append(str, purple_plugin_get_name(plugins->data));
344 if (plugins->next)
345 str = g_string_append(str, ", ");
346 }
347 } else {
348 str = g_string_append(str, "(none)");
349 }
350
351 tmp = g_string_free(str, FALSE);
342 } else { 352 } else {
343 purple_conversation_write(conv, NULL, _("Supported debug options are: version"), 353 purple_conversation_write(conv, NULL, _("Supported debug options are: plugins version"),
344 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL)); 354 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL));
345 return PURPLE_CMD_STATUS_OK; 355 return PURPLE_CMD_RET_OK;
346 } 356 }
357
358 markup = g_markup_escape_text(tmp, -1);
359 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
360 purple_conv_im_send(PURPLE_CONV_IM(conv), markup);
361 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
362 purple_conv_chat_send(PURPLE_CONV_CHAT(conv), markup);
363
364 g_free(tmp);
365 g_free(markup);
366 return PURPLE_CMD_RET_OK;
347 } 367 }
348 368
349 static void clear_conversation_scrollback(PurpleConversation *conv) 369 static void clear_conversation_scrollback(PurpleConversation *conv)
350 { 370 {
351 PidginConversation *gtkconv = NULL; 371 PidginConversation *gtkconv = NULL;
361 static PurpleCmdRet 381 static PurpleCmdRet
362 clear_command_cb(PurpleConversation *conv, 382 clear_command_cb(PurpleConversation *conv,
363 const char *cmd, char **args, char **error, void *data) 383 const char *cmd, char **args, char **error, void *data)
364 { 384 {
365 clear_conversation_scrollback(conv); 385 clear_conversation_scrollback(conv);
366 return PURPLE_CMD_STATUS_OK; 386 return PURPLE_CMD_RET_OK;
367 } 387 }
368 388
369 static PurpleCmdRet 389 static PurpleCmdRet
370 clearall_command_cb(PurpleConversation *conv, 390 clearall_command_cb(PurpleConversation *conv,
371 const char *cmd, char **args, char **error, void *data) 391 const char *cmd, char **args, char **error, void *data)
372 { 392 {
373 purple_conversation_foreach(clear_conversation_scrollback); 393 purple_conversation_foreach(clear_conversation_scrollback);
374 return PURPLE_CMD_STATUS_OK; 394 return PURPLE_CMD_RET_OK;
375 } 395 }
376 396
377 static PurpleCmdRet 397 static PurpleCmdRet
378 help_command_cb(PurpleConversation *conv, 398 help_command_cb(PurpleConversation *conv,
379 const char *cmd, char **args, char **error, void *data) 399 const char *cmd, char **args, char **error, void *data)
408 } 428 }
409 429
410 purple_conversation_write(conv, NULL, s->str, PURPLE_MESSAGE_NO_LOG, time(NULL)); 430 purple_conversation_write(conv, NULL, s->str, PURPLE_MESSAGE_NO_LOG, time(NULL));
411 g_string_free(s, TRUE); 431 g_string_free(s, TRUE);
412 432
413 return PURPLE_CMD_STATUS_OK; 433 return PURPLE_CMD_RET_OK;
414 } 434 }
415 435
416 static void 436 static void
417 send_history_add(PidginConversation *gtkconv, const char *message) 437 send_history_add(PidginConversation *gtkconv, const char *message)
418 { 438 {
3857 } 3877 }
3858 3878
3859 gtk_size_group_add_widget(sg, image); 3879 gtk_size_group_add_widget(sg, image);
3860 3880
3861 /* Make our menu item */ 3881 /* Make our menu item */
3862 text = g_strdup_printf("%s (%s)", name, purple_account_get_username(account)); 3882 text = g_strdup_printf("%s (%s)", name, purple_account_get_name_for_display(account));
3863 menuitem = gtk_radio_menu_item_new_with_label(*group, text); 3883 menuitem = gtk_radio_menu_item_new_with_label(*group, text);
3864 g_free(text); 3884 g_free(text);
3865 *group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem)); 3885 *group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem));
3866 3886
3867 /* Do some evil, see some evil, speak some evil. */ 3887 /* Do some evil, see some evil, speak some evil. */
7208 7228
7209 if (value) 7229 if (value)
7210 pidgin_setup_gtkspell(GTK_TEXT_VIEW(gtkconv->entry)); 7230 pidgin_setup_gtkspell(GTK_TEXT_VIEW(gtkconv->entry));
7211 else { 7231 else {
7212 spell = gtkspell_get_from_text_view(GTK_TEXT_VIEW(gtkconv->entry)); 7232 spell = gtkspell_get_from_text_view(GTK_TEXT_VIEW(gtkconv->entry));
7213 gtkspell_detach(spell); 7233 if (spell)
7234 gtkspell_detach(spell);
7214 } 7235 }
7215 } 7236 }
7216 #endif 7237 #endif
7217 } 7238 }
7218 7239