Commit d574de0e by Russell Belfer Committed by Ben Straub

API updates for status.h

parent 9daf2400
...@@ -47,6 +47,18 @@ typedef enum { ...@@ -47,6 +47,18 @@ typedef enum {
} git_status_t; } 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. * Gather file statuses and run a callback for each one.
* *
* The callback is passed the path of the file, the status (a combination of * The callback is passed the path of the file, the status (a combination of
...@@ -63,7 +75,7 @@ typedef enum { ...@@ -63,7 +75,7 @@ typedef enum {
*/ */
GIT_EXTERN(int) git_status_foreach( GIT_EXTERN(int) git_status_foreach(
git_repository *repo, git_repository *repo,
int (*callback)(const char *, unsigned int, void *), git_status_cb callback,
void *payload); void *payload);
/** /**
...@@ -146,6 +158,7 @@ typedef enum { ...@@ -146,6 +158,7 @@ typedef enum {
* `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags. * `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags.
*/ */
typedef struct { typedef struct {
unsigned int version;
git_status_show_t show; git_status_show_t show;
unsigned int flags; unsigned int flags;
git_strarray pathspec; git_strarray pathspec;
...@@ -168,7 +181,7 @@ typedef struct { ...@@ -168,7 +181,7 @@ typedef struct {
GIT_EXTERN(int) git_status_foreach_ext( GIT_EXTERN(int) git_status_foreach_ext(
git_repository *repo, git_repository *repo,
const git_status_options *opts, const git_status_options *opts,
int (*callback)(const char *, unsigned int, void *), git_status_cb callback,
void *payload); void *payload);
/** /**
......
...@@ -78,7 +78,7 @@ static unsigned int workdir_delta2status(git_delta_t workdir_status) ...@@ -78,7 +78,7 @@ static unsigned int workdir_delta2status(git_delta_t workdir_status)
} }
typedef struct { typedef struct {
int (*cb)(const char *, unsigned int, void *); git_status_cb cb;
void *payload; void *payload;
} status_user_callback; } status_user_callback;
...@@ -104,7 +104,7 @@ static int status_invoke_cb( ...@@ -104,7 +104,7 @@ static int status_invoke_cb(
int git_status_foreach_ext( int git_status_foreach_ext(
git_repository *repo, git_repository *repo,
const git_status_options *opts, const git_status_options *opts,
int (*cb)(const char *, unsigned int, void *), git_status_cb cb,
void *payload) void *payload)
{ {
int err = 0; int err = 0;
...@@ -178,7 +178,7 @@ cleanup: ...@@ -178,7 +178,7 @@ cleanup:
int git_status_foreach( int git_status_foreach(
git_repository *repo, git_repository *repo,
int (*callback)(const char *, unsigned int, void *), git_status_cb callback,
void *payload) void *payload)
{ {
git_status_options opts; git_status_options opts;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment