summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2009-06-25 09:18:01 +0200
committerAlexander Larsson <alexl@redhat.com>2009-06-25 09:18:01 +0200
commitd884e509db1ab6a6d388313d28b7b07cebb3dfc0 (patch)
tree97e1daa7e96f5a4e5385ef63578408c845243e87
parent019e8c808f48e93f81fcb8e9e8d73a43b087cc87 (diff)
Allow setting G_FILE_ATTRIBUTE_TYPE_INVALID attributes in GFileInfo
This is used to unset an attribute in g_file_set_attributes_from_info.
-rw-r--r--gio/gfileattribute.c7
-rw-r--r--gio/gfileinfo.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/gio/gfileattribute.c b/gio/gfileattribute.c
index 671c7ccae..4fb6ffa0a 100644
--- a/gio/gfileattribute.c
+++ b/gio/gfileattribute.c
@@ -461,6 +461,9 @@ _g_file_attribute_value_as_string (const GFileAttributeValue *attr)
((GTypeInstance *) attr->u.obj),
attr->u.obj);
break;
+ case G_FILE_ATTRIBUTE_TYPE_INVALID:
+ str = g_strdup ("<unset>");
+ break;
default:
g_warning ("Invalid type in GFileInfo attribute");
str = g_strdup ("<invalid>");
@@ -693,6 +696,10 @@ _g_file_attribute_value_set_from_pointer (GFileAttributeValue *value,
case G_FILE_ATTRIBUTE_TYPE_INT64:
value->u.int64 = *(gint64 *)value_p;
break;
+
+ case G_FILE_ATTRIBUTE_TYPE_INVALID:
+ break;
+
default:
g_warning ("Unknown type specified in g_file_info_set_attribute\n");
break;
diff --git a/gio/gfileinfo.c b/gio/gfileinfo.c
index aed797542..2785a108a 100644
--- a/gio/gfileinfo.c
+++ b/gio/gfileinfo.c
@@ -566,7 +566,7 @@ g_file_info_list_attributes (GFileInfo *info,
* Gets the attribute type for an attribute key.
*
* Returns: a #GFileAttributeType for the given @attribute, or
- * %G_FILE_ATTRIBUTE_TYPE_INVALID if the key is invalid.
+ * %G_FILE_ATTRIBUTE_TYPE_INVALID if the key is not set.
**/
GFileAttributeType
g_file_info_get_attribute_type (GFileInfo *info,