[gedit] Create backups for local files.



commit a1e40a5e9466f716084896dbb5b103930a2bc0e0
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Sat Feb 6 15:09:27 2010 +0100

    Create backups for local files.

 gedit/gedit-gio-document-saver.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/gedit/gedit-gio-document-saver.c b/gedit/gedit-gio-document-saver.c
index 4e6b6b6..b392121 100644
--- a/gedit/gedit-gio-document-saver.c
+++ b/gedit/gedit-gio-document-saver.c
@@ -492,6 +492,8 @@ static void
 begin_write (AsyncData *async)
 {
 	GeditGioDocumentSaver *gvsaver;
+	GeditDocumentSaver *saver;
+	gboolean backup;
 
 	gedit_debug_message (DEBUG_SAVER, "Start replacing file contents");
 
@@ -499,14 +501,18 @@ begin_write (AsyncData *async)
 	 * backup as of yet
 	 */
 	gvsaver = async->saver;
+	saver = GEDIT_DOCUMENT_SAVER (gvsaver);
+
+	/* Do not make backups for remote files so they do not clutter remote systems */
+	backup = (saver->keep_backup && gedit_document_is_local (saver->document));
 
 	gedit_debug_message (DEBUG_SAVER, "File contents size: %" G_GINT64_FORMAT, gvsaver->priv->size);
 	gedit_debug_message (DEBUG_SAVER, "Calling replace_async");
+	gedit_debug_message (DEBUG_SAVER, backup ? "Keep backup" : "Discard backup");
 
-	/* FIXME: when do we want to make a backup? */
-	g_file_replace_async (gvsaver->priv->gfile, 
+	g_file_replace_async (gvsaver->priv->gfile,
 			      NULL,
-			      FALSE,
+			      backup,
 			      G_FILE_CREATE_NONE,
 			      G_PRIORITY_HIGH,
 			      async->cancellable,



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