[gedit] When converting from utf8 manage well the return values.



commit 6c22c6eb6cb2d3cb94dd4773fe868ecb63b8981c
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Mon Jan 4 13:00:56 2010 +0100

    When converting from utf8 manage well the return values.

 gedit/gedit-smart-charset-converter.c |   23 +++++++++--------------
 1 files changed, 9 insertions(+), 14 deletions(-)
---
diff --git a/gedit/gedit-smart-charset-converter.c b/gedit/gedit-smart-charset-converter.c
index 989d1ef..2968aa1 100644
--- a/gedit/gedit-smart-charset-converter.c
+++ b/gedit/gedit-smart-charset-converter.c
@@ -220,19 +220,6 @@ gedit_smart_charset_converter_convert (GConverter *converter,
 {
 	GeditSmartCharsetConverter *smart = GEDIT_SMART_CHARSET_CONVERTER (converter);
 
-	if (inbuf_size == 0)
-	{
-		if (flags & G_CONVERTER_INPUT_AT_END)
-			return G_CONVERTER_FINISHED;
-
-		if (flags & G_CONVERTER_FLUSH)
-			return G_CONVERTER_FLUSHED;
-
-		g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_PARTIAL_INPUT,
-				     _("Incomplete multibyte sequence in input"));
-		return G_CONVERTER_ERROR;
-	}
-
 	/* Guess the encoding if we didn't make it yet */
 	if (smart->priv->charset_conv == NULL &&
 	    !smart->priv->is_utf8)
@@ -254,6 +241,7 @@ gedit_smart_charset_converter_convert (GConverter *converter,
 	if (smart->priv->is_utf8)
 	{
 		gsize size;
+		GConverterResult ret;
 
 		size = MIN (inbuf_size, outbuf_size);
 
@@ -261,7 +249,14 @@ gedit_smart_charset_converter_convert (GConverter *converter,
 		*bytes_read = size;
 		*bytes_written = size;
 
-		return G_CONVERTER_CONVERTED;
+		ret = G_CONVERTER_CONVERTED;
+
+		if (flags & G_CONVERTER_INPUT_AT_END)
+			ret = G_CONVERTER_FINISHED;
+		else if (flags & G_CONVERTER_FLUSH)
+			ret = G_CONVERTER_FLUSHED;
+
+		return ret;
 	}
 
 	/* If we reached here is because we need to convert the text so, we



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]