# HG changeset patch # User Tim Ringenbach # Date 1114138275 0 # Node ID a29815b897c02b4f74218518024fb4f2d4939dbd # Parent 06e71aa662af18b47d5b44d09fa9a052cda71a11 [gaim-migrate @ 12534] this changes the background "fix" to not use the heap, and also does it for backcolor and font color, so that you can see SmarterChild in its full glory. committer: Tailor Script diff -r 06e71aa662af -r a29815b897c0 src/gtkimhtml.c --- a/src/gtkimhtml.c Fri Apr 22 01:15:33 2005 +0000 +++ b/src/gtkimhtml.c Fri Apr 22 02:51:15 2005 +0000 @@ -647,10 +647,12 @@ color = tag->name + 11; if (!gdk_color_parse(color, &gcolor)) { - gchar *tmp = g_strdup_printf("#%s", color); + gchar tmp[8]; + tmp[0] = '#'; + strncpy(&tmp[1], color, 7); + tmp[7] = '\0'; if (!gdk_color_parse(tmp, &gcolor)) gdk_color_parse("white", &gcolor); - g_free(tmp); } gdk_gc_set_rgb_fg_color(gc, &gcolor); @@ -3348,8 +3350,18 @@ g_snprintf(str, sizeof(str), "FORECOLOR %s", color); tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(imhtml->text_buffer), str); - if (!tag) - tag = gtk_text_buffer_create_tag(imhtml->text_buffer, str, "foreground", color, NULL); + if (!tag) { + GdkColor gcolor; + if (!gdk_color_parse(color, &gcolor)) { + gchar tmp[8]; + tmp[0] = '#'; + strncpy(&tmp[1], color, 7); + tmp[7] = '\0'; + if (!gdk_color_parse(tmp, &gcolor)) + gdk_color_parse("black", &gcolor); + } + tag = gtk_text_buffer_create_tag(imhtml->text_buffer, str, "foreground-gdk", &gcolor, NULL); + } return tag; } @@ -3362,8 +3374,18 @@ g_snprintf(str, sizeof(str), "BACKCOLOR %s", color); tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(imhtml->text_buffer), str); - if (!tag) - tag = gtk_text_buffer_create_tag(imhtml->text_buffer, str, "background", color, NULL); + if (!tag) { + GdkColor gcolor; + if (!gdk_color_parse(color, &gcolor)) { + gchar tmp[8]; + tmp[0] = '#'; + strncpy(&tmp[1], color, 7); + tmp[7] = '\0'; + if (!gdk_color_parse(tmp, &gcolor)) + gdk_color_parse("white", &gcolor); + } + tag = gtk_text_buffer_create_tag(imhtml->text_buffer, str, "background-gdk", &gcolor, NULL); + } return tag; }