From d574de0e6ef05c5de89810b5460bc201ddc513de Mon Sep 17 00:00:00 2001 From: Russell Belfer Date: Wed, 21 Nov 2012 11:53:54 -0800 Subject: API updates for status.h --- include/git2/status.h | 21 +++++++++++++++++---- src/status.c | 6 +++--- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/include/git2/status.h b/include/git2/status.h index 8c59d768d..c6926f343 100644 --- a/include/git2/status.h +++ b/include/git2/status.h @@ -46,6 +46,18 @@ typedef enum { GIT_STATUS_IGNORED = (1u << 14), } git_status_t; +/** + * Function pointer to receive status on individual files + * + * `path` is the relative path to the file from the root of the repository. + * + * `status_flags` is a combination of `git_status_t` values that apply. + * + * `payload` is the value you passed to the foreach function as payload. + */ +typedef int (*git_status_cb)( + const char *path, unsigned int status_flags, void *payload); + /** * Gather file statuses and run a callback for each one. * @@ -63,7 +75,7 @@ typedef enum { */ GIT_EXTERN(int) git_status_foreach( git_repository *repo, - int (*callback)(const char *, unsigned int, void *), + git_status_cb callback, void *payload); /** @@ -146,9 +158,10 @@ typedef enum { * `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags. */ typedef struct { + unsigned int version; git_status_show_t show; - unsigned int flags; - git_strarray pathspec; + unsigned int flags; + git_strarray pathspec; } git_status_options; /** @@ -168,7 +181,7 @@ typedef struct { GIT_EXTERN(int) git_status_foreach_ext( git_repository *repo, const git_status_options *opts, - int (*callback)(const char *, unsigned int, void *), + git_status_cb callback, void *payload); /** diff --git a/src/status.c b/src/status.c index 468417249..c7dea2c71 100644 --- a/src/status.c +++ b/src/status.c @@ -78,7 +78,7 @@ static unsigned int workdir_delta2status(git_delta_t workdir_status) } typedef struct { - int (*cb)(const char *, unsigned int, void *); + git_status_cb cb; void *payload; } status_user_callback; @@ -104,7 +104,7 @@ static int status_invoke_cb( int git_status_foreach_ext( git_repository *repo, const git_status_options *opts, - int (*cb)(const char *, unsigned int, void *), + git_status_cb cb, void *payload) { int err = 0; @@ -178,7 +178,7 @@ cleanup: int git_status_foreach( git_repository *repo, - int (*callback)(const char *, unsigned int, void *), + git_status_cb callback, void *payload) { git_status_options opts; -- cgit v1.2.1