diff options
author | Vicent Marti <tanoku@gmail.com> | 2011-05-05 01:49:27 +0300 |
---|---|---|
committer | Vicent Marti <tanoku@gmail.com> | 2011-05-09 21:58:02 +0300 |
commit | 5eb0fab846d6b2f8bcf3caf7a9e33afa36753850 (patch) | |
tree | 3ae0596ff22aff78244d559bd5810d44877df9eb | |
parent | 3f53c97113deb986b58aac8bb89f76b47e76507b (diff) | |
download | libgit2-5eb0fab846d6b2f8bcf3caf7a9e33afa36753850.tar.gz |
errors: Update external API with new `git_lasterror`
-rw-r--r-- | include/git2/common.h | 3 | ||||
-rw-r--r-- | include/git2/errors.h | 8 | ||||
-rw-r--r-- | src/errors.c | 52 |
3 files changed, 13 insertions, 50 deletions
diff --git a/include/git2/common.h b/include/git2/common.h index 22c7cc466..1d2d3a3e9 100644 --- a/include/git2/common.h +++ b/include/git2/common.h @@ -170,6 +170,9 @@ /** The given literal is not a valid number */ #define GIT_ENOTNUM (GIT_ERROR - 25) +/** Streaming error */ +#define GIT_ESTREAM (GIT_ERROR - 26) + GIT_BEGIN_DECL typedef struct { diff --git a/include/git2/errors.h b/include/git2/errors.h index 627e67c70..fde0dc73d 100644 --- a/include/git2/errors.h +++ b/include/git2/errors.h @@ -34,11 +34,11 @@ GIT_BEGIN_DECL /** - * strerror() for the Git library - * @param num The error code to explain - * @return a string explaining the error code + * Return a detailed error string with the latest error + * that occurred in the library. + * @return a string explaining the error */ -GIT_EXTERN(const char *) git_strerror(int num); +GIT_EXTERN(const char *) git_lasterror(void); /** @} */ GIT_END_DECL diff --git a/src/errors.c b/src/errors.c index b0c1c1519..73df2e209 100644 --- a/src/errors.c +++ b/src/errors.c @@ -28,52 +28,6 @@ #include <stdarg.h> -static struct { - int num; - const char *str; -} error_codes[] = { - {GIT_ERROR, "Unspecified error"}, - {GIT_ENOTOID, "Input was not a properly formatted Git object id."}, - {GIT_ENOTFOUND, "Object does not exist in the scope searched."}, - {GIT_ENOMEM, "Not enough space available."}, - {GIT_EOSERR, "Consult the OS error information."}, - {GIT_EOBJTYPE, "The specified object is of invalid type"}, - {GIT_EOBJCORRUPTED, "The specified object has its data corrupted"}, - {GIT_ENOTAREPO, "The specified repository is invalid"}, - {GIT_EINVALIDTYPE, "The object type is invalid or doesn't match"}, - {GIT_EMISSINGOBJDATA, "The object cannot be written that because it's missing internal data"}, - {GIT_EPACKCORRUPTED, "The packfile for the ODB is corrupted"}, - {GIT_EFLOCKFAIL, "Failed to adquire or release a file lock"}, - {GIT_EZLIB, "The Z library failed to inflate/deflate an object's data"}, - {GIT_EBUSY, "The queried object is currently busy"}, - {GIT_EINVALIDPATH, "The path is invalid"}, - {GIT_EBAREINDEX, "The index file is not backed up by an existing repository"}, - {GIT_EINVALIDREFNAME, "The name of the reference is not valid"}, - {GIT_EREFCORRUPTED, "The specified reference has its data corrupted"}, - {GIT_ETOONESTEDSYMREF, "The specified symbolic reference is too deeply nested"}, - {GIT_EPACKEDREFSCORRUPTED, "The pack-refs file is either corrupted of its format is not currently supported"}, - {GIT_EINVALIDPATH, "The path is invalid" }, - {GIT_EREVWALKOVER, "The revision walker is empty; there are no more commits left to iterate"}, - {GIT_EINVALIDREFSTATE, "The state of the reference is not valid"}, - {GIT_ENOTIMPLEMENTED, "This feature has not been implemented yet"}, - {GIT_EEXISTS, "A reference with this name already exists"}, - {GIT_EOVERFLOW, "The given integer literal is too large to be parsed"}, - {GIT_ENOTNUM, "The given literal is not a valid number"}, -}; - -const char *git_strerror(int num) -{ - size_t i; - - if (num == GIT_EOSERR) - return strerror(errno); - for (i = 0; i < ARRAY_SIZE(error_codes); i++) - if (num == error_codes[i].num) - return error_codes[i].str; - - return "Unknown error"; -} - static GIT_TLS char g_last_error[1024]; int git__error(int error, const char *msg, ...) @@ -86,3 +40,9 @@ int git__error(int error, const char *msg, ...) return error; } + +const char *git_lasterror(void) +{ + return g_last_error; +} + |