aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Mueller <[email protected]>2016-12-01 20:15:12 +0000
committerJustus Winter <[email protected]>2016-12-05 11:41:45 +0000
commitfb7f4cb973abc9f5eb05eb240607be35c1be986c (patch)
treea58d84d52e31cd3bebdf2ee99b7903c97234ae44
parentpython: Check "buffer" when writing to sys.stdout for python2 compat. (diff)
downloadgpgme-fb7f4cb973abc9f5eb05eb240607be35c1be986c.tar.gz
gpgme-fb7f4cb973abc9f5eb05eb240607be35c1be986c.zip
python: Define a macro for wrapping fragile result objects.
* lang/python/gpgme.i (wrapresult): New Macro. -- This reduces the amount of copy and pasted code at the expense of a slightly more complicated logic with a macro. Signed-off-by: Tobias Mueller <[email protected]>
Diffstat (limited to '')
-rw-r--r--lang/python/gpgme.i69
1 files changed, 12 insertions, 57 deletions
diff --git a/lang/python/gpgme.i b/lang/python/gpgme.i
index 783531f7..73533d0c 100644
--- a/lang/python/gpgme.i
+++ b/lang/python/gpgme.i
@@ -424,69 +424,24 @@
/* Wrap the fragile result objects into robust Python ones. */
-%typemap(out) gpgme_encrypt_result_t {
+%define wrapresult(cls, name)
+%typemap(out) cls {
PyObject *fragile;
fragile = SWIG_NewPointerObj(SWIG_as_voidptr($1), $1_descriptor,
%newpointer_flags);
- $result = _gpg_wrap_result(fragile, "EncryptResult");
+ $result = _gpg_wrap_result(fragile, name);
Py_DECREF(fragile);
}
+%enddef
-%typemap(out) gpgme_decrypt_result_t {
- PyObject *fragile;
- fragile = SWIG_NewPointerObj(SWIG_as_voidptr($1), $1_descriptor,
- %newpointer_flags);
- $result = _gpg_wrap_result(fragile, "DecryptResult");
- Py_DECREF(fragile);
-}
-
-%typemap(out) gpgme_sign_result_t {
- PyObject *fragile;
- fragile = SWIG_NewPointerObj(SWIG_as_voidptr($1), $1_descriptor,
- %newpointer_flags);
- $result = _gpg_wrap_result(fragile, "SignResult");
- Py_DECREF(fragile);
-}
-
-%typemap(out) gpgme_verify_result_t {
- PyObject *fragile;
- fragile = SWIG_NewPointerObj(SWIG_as_voidptr($1), $1_descriptor,
- %newpointer_flags);
- $result = _gpg_wrap_result(fragile, "VerifyResult");
- Py_DECREF(fragile);
-}
-
-%typemap(out) gpgme_import_result_t {
- PyObject *fragile;
- fragile = SWIG_NewPointerObj(SWIG_as_voidptr($1), $1_descriptor,
- %newpointer_flags);
- $result = _gpg_wrap_result(fragile, "ImportResult");
- Py_DECREF(fragile);
-}
-
-%typemap(out) gpgme_genkey_result_t {
- PyObject *fragile;
- fragile = SWIG_NewPointerObj(SWIG_as_voidptr($1), $1_descriptor,
- %newpointer_flags);
- $result = _gpg_wrap_result(fragile, "GenkeyResult");
- Py_DECREF(fragile);
-}
-
-%typemap(out) gpgme_keylist_result_t {
- PyObject *fragile;
- fragile = SWIG_NewPointerObj(SWIG_as_voidptr($1), $1_descriptor,
- %newpointer_flags);
- $result = _gpg_wrap_result(fragile, "KeylistResult");
- Py_DECREF(fragile);
-}
-
-%typemap(out) gpgme_vfs_mount_result_t {
- PyObject *fragile;
- fragile = SWIG_NewPointerObj(SWIG_as_voidptr($1), $1_descriptor,
- %newpointer_flags);
- $result = _gpg_wrap_result(fragile, "VFSMountResult");
- Py_DECREF(fragile);
-}
+wrapresult(gpgme_encrypt_result_t, "EncryptResult")
+wrapresult(gpgme_decrypt_result_t, "DecryptResult")
+wrapresult(gpgme_sign_result_t, "SignResult")
+wrapresult(gpgme_verify_result_t, "VerifyResult")
+wrapresult(gpgme_import_result_t, "ImportResult")
+wrapresult(gpgme_genkey_result_t, "GenkeyResult")
+wrapresult(gpgme_keylist_result_t, "KeylistResult")
+wrapresult(gpgme_vfs_mount_result_t, "VFSMountResult")
%typemap(out) gpgme_engine_info_t {
int i;