diff --git a/include/pygit2/error.h b/include/pygit2/error.h index 38df75e..7dcf589 100644 --- a/include/pygit2/error.h +++ b/include/pygit2/error.h @@ -34,6 +34,7 @@ PyObject* Error_type(int type); PyObject* Error_set(int err); +PyObject* Error_set_exc(PyObject* exception); PyObject* Error_set_str(int err, const char *str); PyObject* Error_set_oid(int err, const git_oid *oid, size_t len); diff --git a/src/pygit2/error.c b/src/pygit2/error.c index dd4138d..6e94336 100644 --- a/src/pygit2/error.c +++ b/src/pygit2/error.c @@ -92,6 +92,17 @@ PyObject* Error_set(int err) return NULL; } +PyObject* Error_set_exc(PyObject* exception) +{ + const git_error* error = giterr_last(); + char* message = (error == NULL) ? + "(No error information given)" : error->message; + PyErr_SetString(exception, message); + + return NULL; +} + + PyObject* Error_set_str(int err, const char *str) { const git_error* error;