| 1027 |
1030 |
| 1028 g_free(tmp); |
1031 g_free(tmp); |
| 1029 return buf; |
1032 return buf; |
| 1030 } |
1033 } |
| 1031 |
1034 |
| 1032 void gaim_gtk_find_images(const char *message, GSList **list) { |
1035 void |
| |
1036 gaim_gtk_find_images(const char *message, GSList **list) |
| |
1037 { |
| 1033 GData *attribs; |
1038 GData *attribs; |
| 1034 const char *tmp, *start, *end; |
1039 const char *tmp, *start, *end; |
| 1035 |
1040 |
| 1036 tmp = message; |
1041 tmp = message; |
| 1037 while (gaim_markup_find_tag("img", tmp, &start, &end, &attribs)) { |
1042 while (gaim_markup_find_tag("img", tmp, &start, &end, &attribs)) { |
| 1079 gdk_pixbuf_loader_close(loader, NULL); |
1084 gdk_pixbuf_loader_close(loader, NULL); |
| 1080 } |
1085 } |
| 1081 } |
1086 } |
| 1082 |
1087 |
| 1083 void |
1088 void |
| |
1089 gaim_gtk_setup_gtkspell(GtkTextView *textview) |
| |
1090 { |
| |
1091 #ifdef USE_GTKSPELL |
| |
1092 GError *error = NULL; |
| |
1093 char *locale = NULL; |
| |
1094 |
| |
1095 g_return_if_fail(textview != NULL); |
| |
1096 g_return_if_fail(GTK_IS_TEXT_VIEW(textview)); |
| |
1097 |
| |
1098 if (gtkspell_new_attach(textview, locale, &error) == NULL && error) |
| |
1099 { |
| |
1100 gaim_debug_warning("gtkspell", "Failed to setup GtkSpell: %s\n", |
| |
1101 error->message); |
| |
1102 g_error_free(error); |
| |
1103 } |
| |
1104 #endif /* USE_GTKSPELL */ |
| |
1105 } |
| |
1106 |
| |
1107 void |
| 1084 gaim_gtk_save_accels_cb(GtkAccelGroup *accel_group, guint arg1, |
1108 gaim_gtk_save_accels_cb(GtkAccelGroup *accel_group, guint arg1, |
| 1085 GdkModifierType arg2, GClosure *arg3, |
1109 GdkModifierType arg2, GClosure *arg3, |
| 1086 gpointer data) |
1110 gpointer data) |
| 1087 { |
1111 { |
| 1088 gaim_debug(GAIM_DEBUG_MISC, "accels", "accel changed, scheduling save.\n"); |
1112 gaim_debug(GAIM_DEBUG_MISC, "accels", "accel changed, scheduling save.\n"); |