diff options
| author | Vicent Martà <vicent@github.com> | 2013-11-05 06:05:32 -0800 |
|---|---|---|
| committer | Vicent Martà <vicent@github.com> | 2013-11-05 06:05:32 -0800 |
| commit | ffd040532a1f3c7f4e268be682bb91fe724693be (patch) | |
| tree | 4a283f083fe2fe0c0678a6209a19b9a29f2c8f51 /src/errors.c | |
| parent | b7fbfbb21f4248bf4103a2c13479bf65ba175f36 (diff) | |
| parent | 1eab9f0e32178a9aac941583c69e1b9cf9849f77 (diff) | |
| download | libgit2-ffd040532a1f3c7f4e268be682bb91fe724693be.tar.gz | |
Merge pull request #1941 from libgit2/rb/preserve-iterator-error
Preserve error messages during file system iterator cleanup
Diffstat (limited to 'src/errors.c')
| -rw-r--r-- | src/errors.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/errors.c b/src/errors.c index c9d9e4e37..d04da4ca9 100644 --- a/src/errors.c +++ b/src/errors.c @@ -112,6 +112,24 @@ 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; |
