+2008-03-27 Alexander Larsson <alexl@redhat.com>
+
+ * glocalfile.c (g_local_file_move):
+ Return G_IO_ERROR_IS_DIRECTORY, not G_IO_ERROR_WOULD_MERGE when moving
+ file over directory. This is according to the docs and what the move via
+ copy+remove fallback does.
+
2008-03-27 Lin Ma <Lin.Ma@Sun.COM>
* fen/*.[hc]: Updated copyright.
g_strerror (errsv));
return FALSE;
}
- else
- source_is_dir = S_ISDIR (statbuf.st_mode);
+ source_is_dir = S_ISDIR (statbuf.st_mode);
source_size = statbuf.st_size;
destination_exist = FALSE;
/* Always fail on dirs, even with overwrite */
if (S_ISDIR (statbuf.st_mode))
{
- g_set_error (error,
- G_IO_ERROR,
- G_IO_ERROR_WOULD_MERGE,
- _("Can't move directory over directory"));
+ if (source_is_dir)
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_WOULD_MERGE,
+ _("Can't move directory over directory"));
+ else
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_IS_DIRECTORY,
+ _("File is directory"));
return FALSE;
}
}