summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Rocha <lucasr@gnome.org>2007-05-27 20:35:32 +0000
committerLucas Almeida Rocha <lucasr@src.gnome.org>2007-05-27 20:35:32 +0000
commit5868adac7501134a8cb9d2ace1ae12622368a910 (patch)
treec2248580c6c17603cb0a09a100378517d9f56e41
parentb73e72bcfea040aaf4ea681068676de3ee013ac8 (diff)
correctly handle UTF-8 input text in the text info dialog (Fixes bug
2007-05-27 Lucas Rocha <lucasr@gnome.org> * src/text.c: correctly handle UTF-8 input text in the text info dialog (Fixes bug #407275). svn path=/trunk/; revision=1220
-rw-r--r--ChangeLog5
-rw-r--r--src/text.c11
2 files changed, 13 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 448d8a7..d577b51 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2007-05-27 Lucas Rocha <lucasr@gnome.org>
+ * src/text.c: correctly handle UTF-8 input text in the text info
+ dialog (Fixes bug #407275).
+
+2007-05-27 Lucas Rocha <lucasr@gnome.org>
+
* src/main.c: initialize GTK+ before parsing command line options to
better handle errors on display setting (Fixes bug #410055).
diff --git a/src/text.c b/src/text.c
index b781682..a8da744 100644
--- a/src/text.c
+++ b/src/text.c
@@ -74,9 +74,14 @@ zenity_text_handle_stdin (GIOChannel *channel,
gsize utflen;
gtk_text_buffer_get_end_iter (buffer, &end);
- utftext = g_convert_with_fallback (buf, len, "UTF-8", "ISO-8859-1", NULL, &localelen, &utflen, NULL);
- gtk_text_buffer_insert (buffer, &end, utftext, utflen);
- g_free (utftext);
+
+ if (!g_utf8_validate (buf, len, NULL)) {
+ utftext = g_convert_with_fallback (buf, len, "UTF-8", "ISO-8859-1", NULL, &localelen, &utflen, NULL);
+ gtk_text_buffer_insert (buffer, &end, utftext, utflen);
+ g_free (utftext);
+ } else {
+ gtk_text_buffer_insert (buffer, &end, buf, len);
+ }
}
}