[gedit] Handle INVALID_DATA and PARTIAL_INPUT as conversion errors on save



commit 31728e836a8e0a77df8d75a729842630a6254be1
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Fri Apr 9 22:08:52 2010 +0200

    Handle INVALID_DATA and PARTIAL_INPUT as conversion errors on save
    
    This handles G_IO_ERROR_INVALID_DATA and
    G_IO_ERROR_PARTIAL_INPUT the same way as GConvert errors are
    handled.

 gedit/gedit-io-error-message-area.c |    3 ++-
 gedit/gedit-tab.c                   |    9 ++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/gedit/gedit-io-error-message-area.c b/gedit/gedit-io-error-message-area.c
index 3b870f2..e116a15 100644
--- a/gedit/gedit-io-error-message-area.c
+++ b/gedit/gedit-io-error-message-area.c
@@ -721,7 +721,8 @@ gedit_conversion_error_while_saving_message_area_new (
 	
 	g_return_val_if_fail (uri != NULL, NULL);
 	g_return_val_if_fail (error != NULL, NULL);
-	g_return_val_if_fail (error->domain == G_CONVERT_ERROR, NULL);
+	g_return_val_if_fail (error->domain == G_CONVERT_ERROR ||
+	                      error->domain == G_IO_ERROR, NULL);
 	g_return_val_if_fail (encoding != NULL, NULL);
 	
 	full_formatted_uri = gedit_utils_uri_for_display (uri);
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index 1dcdcbe..633f6b1 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -1313,8 +1313,10 @@ document_saved (GeditDocument *document,
 					  G_CALLBACK (no_backup_error_message_area_response),
 					  tab);
 		}
-		else if (error->domain == GEDIT_DOCUMENT_ERROR || 
-			 error->domain == G_IO_ERROR)
+		else if (error->domain == GEDIT_DOCUMENT_ERROR ||
+			 (error->domain == G_IO_ERROR &&
+			  error->code != G_IO_ERROR_INVALID_DATA &&
+			  error->code != G_IO_ERROR_PARTIAL_INPUT))
 		{
 			/* These errors are _NOT_ recoverable */
 			_gedit_recent_remove  (GEDIT_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (tab))),
@@ -1334,7 +1336,8 @@ document_saved (GeditDocument *document,
 		else
 		{
 			/* This error is recoverable */
-			g_return_if_fail (error->domain == G_CONVERT_ERROR);
+			g_return_if_fail (error->domain == G_CONVERT_ERROR ||
+			                  error->domain == G_IO_ERROR);
 
 			emsg = gedit_conversion_error_while_saving_message_area_new (
 									tab->priv->tmp_save_uri,



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