file-roller r2549 - in trunk: . src
- From: paobac svn gnome org
- To: svn-commits-list gnome org
- Subject: file-roller r2549 - in trunk: . src
- Date: Mon, 19 Jan 2009 12:53:04 +0000 (UTC)
Author: paobac
Date: Mon Jan 19 12:53:04 2009
New Revision: 2549
URL: http://svn.gnome.org/viewvc/file-roller?rev=2549&view=rev
Log:
2009-01-19 Paolo Bacchilega <paobac svn gnome org>
* src/fr-window.c:
* src/file-utils.c:
* src/dlg-extract.c:
* src/dlg-batch-add.c:
* src/dlg-add-folder.c:
* src/dlg-add-files.c:
Fixed bug #563208 â file-roller can't extract to an ftp mounted
directory.
Patch by Gerard Lommerse.
Modified:
trunk/ChangeLog
trunk/src/dlg-add-files.c
trunk/src/dlg-add-folder.c
trunk/src/dlg-batch-add.c
trunk/src/dlg-extract.c
trunk/src/file-utils.c
trunk/src/fr-window.c
Modified: trunk/src/dlg-add-files.c
==============================================================================
--- trunk/src/dlg-add-files.c (original)
+++ trunk/src/dlg-add-files.c Mon Jan 19 12:53:04 2009
@@ -84,8 +84,7 @@
/* check folder permissions. */
- if (uri_is_dir (current_folder)
- && ! check_permissions (current_folder, R_OK | X_OK)) {
+ if (uri_is_dir (current_folder) && ! check_permissions (current_folder, R_OK)) {
GtkWidget *d;
char *utf8_path;
Modified: trunk/src/dlg-add-folder.c
==============================================================================
--- trunk/src/dlg-add-folder.c (original)
+++ trunk/src/dlg-add-folder.c Mon Jan 19 12:53:04 2009
@@ -119,7 +119,7 @@
/* check folder permissions. */
- if (! check_permissions (selected_folder, R_OK | X_OK)) {
+ if (! check_permissions (selected_folder, R_OK)) {
GtkWidget *d;
char *utf8_path;
Modified: trunk/src/dlg-batch-add.c
==============================================================================
--- trunk/src/dlg-batch-add.c (original)
+++ trunk/src/dlg-batch-add.c Mon Jan 19 12:53:04 2009
@@ -548,7 +548,7 @@
_gtk_entry_set_filename_text (GTK_ENTRY (data->a_add_to_entry), automatic_name);
g_free (automatic_name);
- if (check_permissions (parent, R_OK|W_OK|X_OK))
+ if (check_permissions (parent, R_OK | W_OK))
gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (data->a_location_filechooserbutton), parent);
else
gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (data->a_location_filechooserbutton), get_home_uri ());
Modified: trunk/src/dlg-extract.c
==============================================================================
--- trunk/src/dlg-extract.c (original)
+++ trunk/src/dlg-extract.c Mon Jan 19 12:53:04 2009
@@ -168,7 +168,8 @@
/* check extraction directory permissions. */
if (uri_is_dir (extract_to_dir)
- && ! check_permissions (extract_to_dir, R_OK | W_OK | X_OK)) {
+ && ! check_permissions (extract_to_dir, R_OK | W_OK))
+ {
GtkWidget *d;
char *utf8_path;
Modified: trunk/src/file-utils.c
==============================================================================
--- trunk/src/file-utils.c (original)
+++ trunk/src/file-utils.c Mon Jan 19 12:53:04 2009
@@ -1106,6 +1106,7 @@
GFile *file;
GFileInfo *info;
GError *err = NULL;
+ gboolean default_permission_when_unknown = TRUE;
file = g_file_new_for_uri (uri);
info = g_file_query_info (file, "access::*", 0, NULL, &err);
@@ -1114,13 +1115,29 @@
g_clear_error (&err);
result = FALSE;
}
- else if ((mode & R_OK) && ! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_READ))
- result = FALSE;
- else if ((mode & W_OK) && ! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE))
- result = FALSE;
- else if ((mode & X_OK) && ! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE))
- result = FALSE;
-
+ else {
+ if ((mode & R_OK) == R_OK) {
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_ACCESS_CAN_READ))
+ result = (result && g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_READ));
+ else
+ result = (result && default_permission_when_unknown);
+ }
+
+ if ((mode & W_OK) == W_OK) {
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE))
+ result = (result && g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE));
+ else
+ result = (result && default_permission_when_unknown);
+ }
+
+ if ((mode & X_OK) == X_OK) {
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE))
+ result = (result && g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE));
+ else
+ result = (result && default_permission_when_unknown);
+ }
+ }
+
g_object_unref (info);
g_object_unref (file);
Modified: trunk/src/fr-window.c
==============================================================================
--- trunk/src/fr-window.c (original)
+++ trunk/src/fr-window.c Mon Jan 19 12:53:04 2009
@@ -4209,7 +4209,7 @@
g_clear_error (&window->priv->drag_error);
- if (! check_permissions (destination_folder, R_OK | W_OK | X_OK)) {
+ if (! check_permissions (destination_folder, R_OK | W_OK)) {
char *destination_folder_display_name;
destination_folder_display_name = g_filename_display_name (destination_folder);
@@ -4289,7 +4289,7 @@
g_clear_error (&window->priv->drag_error);
- if (! check_permissions (destination_folder, R_OK | W_OK | X_OK)) {
+ if (! check_permissions (destination_folder, R_OK | W_OK)) {
char *destination_folder_display_name;
destination_folder_display_name = g_filename_display_name (destination_folder);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]