[libgit2-glib] Set index entry mode to valid values in stat
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgit2-glib] Set index entry mode to valid values in stat
- Date: Tue, 24 Jun 2014 14:59:14 +0000 (UTC)
commit 8e5a3d85a4acdf4f61b0aaf6b7a8904c53a98fd6
Author: Jesse van den Kieboom <jessevdk gnome org>
Date: Tue Jun 24 16:57:40 2014 +0200
Set index entry mode to valid values in stat
libgit2-glib/ggit-index-entry.c | 27 +++++++++++++++++++++++----
1 files changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/libgit2-glib/ggit-index-entry.c b/libgit2-glib/ggit-index-entry.c
index a735510..d56dc41 100644
--- a/libgit2-glib/ggit-index-entry.c
+++ b/libgit2-glib/ggit-index-entry.c
@@ -667,6 +667,27 @@ ggit_index_entry_set_path (GgitIndexEntry *entry,
}
}
+static git_filemode_t
+file_info_to_filemode (GFileInfo *info)
+{
+ git_filemode_t ret = 0;
+
+ if (g_file_info_get_is_symlink (info))
+ {
+ ret |= GIT_FILEMODE_LINK;
+ }
+ else if (g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE))
+ {
+ ret |= GIT_FILEMODE_BLOB_EXECUTABLE;
+ }
+ else
+ {
+ ret |= GIT_FILEMODE_BLOB;
+ }
+
+ return ret;
+}
+
/**
* ggit_index_entry_stat:
* @entry: a #GgitIndexEntry.
@@ -698,7 +719,7 @@ ggit_index_entry_stat (GgitIndexEntry *entry,
G_FILE_ATTRIBUTE_TIME_CREATED_USEC ","
G_FILE_ATTRIBUTE_UNIX_DEVICE ","
G_FILE_ATTRIBUTE_UNIX_INODE ","
- G_FILE_ATTRIBUTE_UNIX_MODE ","
+ G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE ","
G_FILE_ATTRIBUTE_UNIX_UID ","
G_FILE_ATTRIBUTE_UNIX_GID,
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
@@ -736,9 +757,7 @@ ggit_index_entry_stat (GgitIndexEntry *entry,
g_file_info_get_attribute_uint64 (info,
G_FILE_ATTRIBUTE_UNIX_INODE);
- entry->entry->mode =
- g_file_info_get_attribute_uint32 (info,
- G_FILE_ATTRIBUTE_UNIX_MODE);
+ entry->entry->mode = file_info_to_filemode (info);
entry->entry->uid =
g_file_info_get_attribute_uint32 (info,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]