From 64bb6efc2b651ea5bd65444d5e69a45536f60409 Mon Sep 17 00:00:00 2001 From: Nico von Geyso Date: Mon, 19 Nov 2012 23:12:12 +0100 Subject: [PATCH] added Error_set_exc() for throwing individual Exceptions --- include/pygit2/error.h | 1 + src/pygit2/error.c | 11 +++++++++++ 2 files changed, 12 insertions(+) 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;