python: Move helper function.
authorJustus Winter <justus@g10code.com>
Thu, 2 Jun 2016 15:14:53 +0000 (17:14 +0200)
committerJustus Winter <justus@g10code.com>
Mon, 6 Jun 2016 12:16:04 +0000 (14:16 +0200)
* lang/python/gpgme.i (object_to_gpgme_t): Move...
* lang/python/helpers.c: ... here.
* lang/python/helpers.h (object_to_gpgme_t): New prototype.

Signed-off-by: Justus Winter <justus@g10code.com>
lang/python/gpgme.i
lang/python/helpers.c
lang/python/helpers.h

index 0d1322c..e3c761d 100644 (file)
 %typemap(newfree) char * "free($1);";
 %newobject gpgme_data_release_and_get_mem;
 
-%{
-/* Convert object to a pointer to gpgme type */
-PyObject* object_to_gpgme_t(PyObject* input, const char* objtype, int argnum) {
-  PyObject *pyname = NULL, *pypointer = NULL;
-  pyname = PyObject_CallMethod(input, "_getctype", NULL);
-  if (pyname && PyUnicode_Check(pyname))
-    {
-      if (strcmp(PyUnicode_AsUTF8(pyname), objtype) != 0)
-        {
-          PyErr_Format(PyExc_TypeError,
-                       "arg %d: Expected value of type %s, but got %s",
-                       argnum, objtype, PyUnicode_AsUTF8(pyname));
-          Py_DECREF(pyname);
-          return NULL;
-        }
-    }
-  else
-    return NULL;
-
-  Py_DECREF(pyname);
-  pypointer = PyObject_GetAttrString(input, "wrapped");
-  if (pypointer == NULL) {
-    PyErr_Format(PyExc_TypeError,
-                "arg %d: Use of uninitialized Python object %s",
-                argnum, objtype);
-    return NULL;
-  }
-  return pypointer;
-}
-%}
-
 %typemap(arginit) gpgme_key_t [] {
   $1 = NULL;
 }
index 4b6ac31..3ecbacc 100644 (file)
@@ -146,7 +146,43 @@ PyObject *pygpgme_raise_callback_exception(PyObject *self)
   return Py_None;
 }
 #undef EXCINFO
+\f
+/* Argument conversion.  */
+
+/* Convert object to a pointer to gpgme type, generic version.  */
+PyObject *
+object_to_gpgme_t(PyObject *input, const char *objtype, int argnum)
+{
+  PyObject *pyname = NULL, *pypointer = NULL;
+  pyname = PyObject_CallMethod(input, "_getctype", NULL);
+  if (pyname && PyUnicode_Check(pyname))
+    {
+      if (strcmp(PyUnicode_AsUTF8(pyname), objtype) != 0)
+        {
+          PyErr_Format(PyExc_TypeError,
+                       "arg %d: Expected value of type %s, but got %s",
+                       argnum, objtype, PyUnicode_AsUTF8(pyname));
+          Py_DECREF(pyname);
+          return NULL;
+        }
+    }
+  else
+    return NULL;
+
+  Py_DECREF(pyname);
+  pypointer = PyObject_GetAttrString(input, "wrapped");
+  if (pypointer == NULL) {
+    PyErr_Format(PyExc_TypeError,
+                "arg %d: Use of uninitialized Python object %s",
+                argnum, objtype);
+    return NULL;
+  }
+  return pypointer;
+}
+
+\f
 
+/* Callback support.  */
 static gpgme_error_t pyPassphraseCb(void *hook,
                                    const char *uid_hint,
                                    const char *passphrase_info,
index 1bfcaa6..952b31f 100644 (file)
@@ -28,6 +28,8 @@
 void pygpgme_exception_init(void);
 gpgme_error_t pygpgme_exception2code(void);
 
+PyObject *object_to_gpgme_t(PyObject *input, const char *objtype, int argnum);
+
 void pygpgme_clear_generic_cb(PyObject **cb);
 PyObject *pygpgme_raise_callback_exception(PyObject *self);