diff options
Diffstat (limited to 'src/errors.c')
-rw-r--r-- | src/errors.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/errors.c b/src/errors.c index e2629f69e..d04da4ca9 100644 --- a/src/errors.c +++ b/src/errors.c @@ -112,8 +112,25 @@ void giterr_clear(void) #endif } +int giterr_detach(git_error *cpy) +{ + git_error *error = GIT_GLOBAL->last_error; + + assert(cpy); + + if (!error) + return -1; + + cpy->message = error->message; + cpy->klass = error->klass; + + error->message = NULL; + giterr_clear(); + + return 0; +} + const git_error *giterr_last(void) { return GIT_GLOBAL->last_error; } - |