summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJason Penny <jasonpenny4@gmail.com>2011-06-22 18:31:20 -0400
committerVicent Marti <tanoku@gmail.com>2011-07-09 13:49:50 +0200
commit3af6b34a76cd953f485b8733981493b65becf59e (patch)
treeb921fe2e5a7ecc4865c16a23d58470a870f0abd6 /include
parent210940da841d7f796d8c98a9a1fe6efffbaf41c5 (diff)
downloadlibgit2-3af6b34a76cd953f485b8733981493b65becf59e.tar.gz
status: get file statuses and run callback
Add git_status_foreach() to run a callback on each file passing the path and a status value.
Diffstat (limited to 'include')
-rw-r--r--include/git2/status.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/git2/status.h b/include/git2/status.h
index 97fff43e8..72912c59c 100644
--- a/include/git2/status.h
+++ b/include/git2/status.h
@@ -37,6 +37,20 @@
*/
GIT_BEGIN_DECL
+#define GIT_STATUS_CURRENT 0
+/** Flags for index status */
+#define GIT_STATUS_INDEX_NEW (1 << 0)
+#define GIT_STATUS_INDEX_MODIFIED (1 << 1)
+#define GIT_STATUS_INDEX_DELETED (1 << 2)
+
+/** Flags for worktree status */
+#define GIT_STATUS_WT_NEW (1 << 3)
+#define GIT_STATUS_WT_MODIFIED (1 << 4)
+#define GIT_STATUS_WT_DELETED (1 << 5)
+
+// TODO Ignored files not handled yet
+#define GIT_STATUS_IGNORED (1 << 6)
+
/**
* Read a file from disk and fill a git_oid with the object id
* that the file would have if it were written to the Object
@@ -49,6 +63,19 @@ GIT_BEGIN_DECL
*/
GIT_EXTERN(int) git_status_hashfile(git_oid *out, const char *path);
+/**
+ * Gather file statuses and run a callback for each one.
+ *
+ * The callback is passed the path of the file, the status and the data pointer
+ * passed to this function. If the callback returns something other than
+ * GIT_SUCCESS, this function will return that value.
+ *
+ * @param repo a repository object
+ * @param callback the function to call on each file
+ * @return GIT_SUCCESS or the return value of the callback which did not return 0;
+ */
+GIT_EXTERN(int) git_status_foreach(git_repository *repo, int (*callback)(const char *, unsigned int, void *), void *payload);
+
/** @} */
GIT_END_DECL
#endif