diff options
Diffstat (limited to 'lang/python/gpgme.i')
-rw-r--r-- | lang/python/gpgme.i | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lang/python/gpgme.i b/lang/python/gpgme.i index 84bc6e98..5b3c193b 100644 --- a/lang/python/gpgme.i +++ b/lang/python/gpgme.i @@ -180,10 +180,13 @@ PyObject* object_to_gpgme_t(PyObject* input, const char* objtype, int argnum) { gpgme_data_t pubkey, gpgme_data_t seckey, gpgme_data_t out}; -// SWIG has problem interpreting ssize_t, off_t or gpgme_error_t in gpgme.h +/* SWIG has problems interpreting ssize_t, off_t or gpgme_error_t in + gpgme.h. */ +/* XXX: This is wrong at least for off_t if compiled with LFS. */ %typemap(out) ssize_t, off_t, gpgme_error_t, gpgme_err_code_t, gpgme_err_source_t, gpg_error_t { $result = PyLong_FromLong($1); } +/* XXX: This is wrong at least for off_t if compiled with LFS. */ %typemap(in) ssize_t, off_t, gpgme_error_t, gpgme_err_code_t, gpgme_err_source_t, gpg_error_t { $1 = PyLong_AsLong($input); } @@ -201,7 +204,7 @@ PyObject* object_to_gpgme_t(PyObject* input, const char* objtype, int argnum) { Py_XDECREF($result); /* Blow away any previous result */ if (result < 0) { /* Check for I/O error */ free($1); - return NULL; + return PyErr_SetFromErrno(PyExc_RuntimeError); } $result = PyBytes_FromStringAndSize($1,result); free($1); |