glib r6464 - trunk/gio



Author: tbzatek
Date: Wed Feb  6 13:45:26 2008
New Revision: 6464
URL: http://svn.gnome.org/viewvc/glib?rev=6464&view=rev

Log:
2008-02-06  Tomas Bzatek  <tbzatek redhat com> 

        * glocalfileoutputstream.c (g_local_file_output_stream_close):
        Fallback to rename() if link() is not available
        (when no support on target filesystem)



Modified:
   trunk/gio/ChangeLog
   trunk/gio/glocalfileoutputstream.c

Modified: trunk/gio/glocalfileoutputstream.c
==============================================================================
--- trunk/gio/glocalfileoutputstream.c	(original)
+++ trunk/gio/glocalfileoutputstream.c	Wed Feb  6 13:45:26 2008
@@ -209,15 +209,19 @@
 
 	  if (link (file->priv->original_filename, file->priv->backup_filename) != 0)
 	    {
-	      g_set_error (error, G_IO_ERROR,
-			   G_IO_ERROR_CANT_CREATE_BACKUP,
-			   _("Error creating backup link: %s"),
-			   g_strerror (errno));
-	      goto err_out;
+	      /*  link failed or is not supported, try rename  */
+	      if (rename (file->priv->original_filename, file->priv->backup_filename) != 0)
+		{
+	    	  g_set_error (error, G_IO_ERROR,
+		    	       G_IO_ERROR_CANT_CREATE_BACKUP,
+			       _("Error creating backup copy: %s"),
+			       g_strerror (errno));
+	          goto err_out;
+		}
 	    }
 #else
 	    /* If link not supported, just rename... */
-	  if (!rename (file->priv->original_filename, file->priv->backup_filename) != 0)
+	  if (rename (file->priv->original_filename, file->priv->backup_filename) != 0)
 	    {
 	      g_set_error (error, G_IO_ERROR,
 			   G_IO_ERROR_CANT_CREATE_BACKUP,



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