Revision: 4959 http://geany.svn.sourceforge.net/geany/?rev=4959&view=rev Author: eht16 Date: 2010-05-29 18:36:17 +0000 (Sat, 29 May 2010)
Log Message: ----------- Try to convert text into UTF-8 before adding it to the Compiler and Messages Window (closes #3007919).
Modified Paths: -------------- trunk/ChangeLog trunk/src/msgwindow.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-05-29 18:36:04 UTC (rev 4958) +++ trunk/ChangeLog 2010-05-29 18:36:17 UTC (rev 4959) @@ -6,6 +6,9 @@ Fix some labels which were marked as translatable but were not handled properly by gettext(). Add a missing const. + * src/msgwindow.c: + Try to convert text into UTF-8 before adding it to the Compiler and + Messages Window (closes #3007919).
2010-05-25 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/msgwindow.c =================================================================== --- trunk/src/msgwindow.c 2010-05-29 18:36:04 UTC (rev 4958) +++ trunk/src/msgwindow.c 2010-05-29 18:36:17 UTC (rev 4959) @@ -268,9 +268,15 @@ GtkTreeIter iter; GtkTreePath *path; const GdkColor *color = get_color(msg_color); + gchar *utf8_msg;
+ if (! g_utf8_validate(msg, -1, NULL)) + utf8_msg = utils_get_utf8_from_locale(msg); + else + utf8_msg = (gchar *) msg; + gtk_list_store_append(msgwindow.store_compiler, &iter); - gtk_list_store_set(msgwindow.store_compiler, &iter, 0, color, 1, msg, -1); + gtk_list_store_set(msgwindow.store_compiler, &iter, 0, color, 1, utf8_msg, -1);
if (ui_prefs.msgwindow_visible && interface_prefs.compiler_tab_autoscroll) { @@ -283,6 +289,9 @@ /* calling build_menu_update for every build message would be overkill, TODO really should call it once when all done */ gtk_widget_set_sensitive(build_get_menu_items(-1)->menu_item[GBG_FIXED][GBF_NEXT_ERROR], TRUE); gtk_widget_set_sensitive(build_get_menu_items(-1)->menu_item[GBG_FIXED][GBF_PREV_ERROR], TRUE); + + if (utf8_msg != msg) + g_free(utf8_msg); }
@@ -334,8 +343,10 @@ const GdkColor *color = get_color(msg_color); gchar *tmp; gsize len; + gchar *utf8_msg;
- if (! ui_prefs.msgwindow_visible) msgwin_show_hide(TRUE); + if (! ui_prefs.msgwindow_visible) + msgwin_show_hide(TRUE);
/* work around a strange problem when adding very long lines(greater than 4000 bytes) * cut the string to a maximum of 1024 bytes and discard the rest */ @@ -346,10 +357,17 @@ else tmp = g_strdup(string);
+ if (! g_utf8_validate(tmp, -1, NULL)) + utf8_msg = utils_get_utf8_from_locale(tmp); + else + utf8_msg = tmp; + gtk_list_store_append(msgwindow.store_msg, &iter); - gtk_list_store_set(msgwindow.store_msg, &iter, 0, line, 1, doc, 2, color, 3, tmp, -1); + gtk_list_store_set(msgwindow.store_msg, &iter, 0, line, 1, doc, 2, color, 3, utf8_msg, -1);
g_free(tmp); + if (utf8_msg != tmp) + g_free(utf8_msg); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.