Commit 3a42e0a3705d5d47ed32579721a62edf4ff297b1

Vicent Marti 2011-06-03T21:38:55

index: Add `git_index_entry_stage` method As suggested by Romain-Geissler

diff --git a/include/git2/index.h b/include/git2/index.h
index 45900d0..fa1cade 100644
--- a/include/git2/index.h
+++ b/include/git2/index.h
@@ -287,6 +287,18 @@ GIT_EXTERN(unsigned int) git_index_entrycount_unmerged(git_index *index);
  */
 GIT_EXTERN(const git_index_entry_unmerged *) git_index_get_unmerged(git_index *index, const char *path);
 
+/**
+ * Return the stage number from a git index entry
+ *
+ * This entry is calculated from the entrie's flag
+ * attribute like this:
+ *
+ *	(entry->flags & GIT_IDXENTRY_STAGEMASK) >> GIT_IDXENTRY_STAGESHIFT
+ *
+ * @param entry The entry
+ * @returns the stage number
+ */
+GIT_EXTERN(int) git_index_entry_stage(const git_index_entry *entry);
 
 /** @} */
 GIT_END_DECL
diff --git a/src/index.c b/src/index.c
index 8517b80..c86d37a 100644
--- a/src/index.c
+++ b/src/index.c
@@ -980,3 +980,8 @@ static int write_index(git_index *index, git_filebuf *file)
 
 	return error == GIT_SUCCESS ? GIT_SUCCESS : git__rethrow(error, "Failed to write index");
 }
+
+int git_index_entry_stage(const git_index_entry *entry)
+{
+	return (entry->flags & GIT_IDXENTRY_STAGEMASK) >> GIT_IDXENTRY_STAGESHIFT;
+}