python: Expose less functions to the Python world.
authorJustus Winter <justus@g10code.com>
Thu, 28 Jul 2016 08:20:20 +0000 (10:20 +0200)
committerJustus Winter <justus@g10code.com>
Thu, 28 Jul 2016 08:23:32 +0000 (10:23 +0200)
* lang/python/Makefile.am (EXTRA_DIST, COPY_FILES): Add new file.
* lang/python/gpgme.i: Include new file and add comments.
* lang/python/helpers.c: Include new file.
* lang/python/helpers.h: Move functions we do not need to expose...
* lang/python/private.h: ... here.

Signed-off-by: Justus Winter <justus@g10code.com>
lang/python/Makefile.am
lang/python/gpgme.i
lang/python/helpers.c
lang/python/helpers.h
lang/python/private.h [new file with mode: 0644]

index 0ac1dd0..3651db9 100644 (file)
@@ -20,7 +20,7 @@ EXTRA_DIST = \
        README \
        MANIFEST.in \
        gpgme.i \
-       helpers.c helpers.h \
+       helpers.c helpers.h private.h \
        gpgme-h-clean.py \
        examples \
        pyme
@@ -34,7 +34,7 @@ COPY_FILES = \
        $(srcdir)/gpgme-h-clean.py \
        $(srcdir)/pyme \
        $(srcdir)/examples \
-       $(srcdir)/helpers.c $(srcdir)/helpers.h
+       $(srcdir)/helpers.c $(srcdir)/helpers.h $(srcdir)/private.h
 
 # For VPATH builds we need to copy some files because Python's
 # distutils are not VPATH-aware.
index c1e0074..2b186c4 100644 (file)
@@ -476,8 +476,10 @@ struct _gpgme_sig_notation
 %}
 FILE *fdopen(int fildes, const char *mode);
 
+/* We include both headers in the generated c code...  */
 %{
 #include "helpers.h"
+#include "private.h"
 
 /* SWIG support for helpers.c  */
 PyObject *
@@ -499,4 +501,6 @@ pygpgme_unwrap_gpgme_ctx_t(PyObject *wrapped)
 }
 %}
 
+/* ... but only the public definitions here.  They will be exposed to
+   the Python world, so let's be careful.  */
 %include "helpers.h"
index d6cbb88..2b38172 100644 (file)
@@ -24,7 +24,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include "Python.h"
+
 #include "helpers.h"
+#include "private.h"
 
 static PyObject *GPGMEError = NULL;
 
index beb2682..4bfb664 100644 (file)
 #define write(fd, str, sz) {DWORD written; WriteFile((HANDLE) fd, str, sz, &written, 0);}
 #endif
 
-void pygpgme_exception_init(void);
-gpgme_error_t pygpgme_exception2code(void);
-
-PyObject *object_to_gpgme_t(PyObject *input, const char *objtype, int argnum);
-PyObject *object_to_gpgme_data_t(PyObject *input, int argnum,
-                                gpgme_data_t *wrapper,
-                                PyObject **bytesio, Py_buffer *view);
-
-PyObject *pygpgme_wrap_fragile_result(PyObject *fragile, const char *classname);
-
 PyObject *pygpgme_raise_callback_exception(PyObject *self);
 
 PyObject *pygpgme_set_passphrase_cb(PyObject *self, PyObject *cb);
 PyObject *pygpgme_set_progress_cb(PyObject *self, PyObject *cb);
 PyObject *pygpgme_set_status_cb(PyObject *self, PyObject *cb);
 
-gpgme_error_t pyEditCb(void *opaque, gpgme_status_code_t status,
-                      const char *args, int fd);
-
 PyObject *pygpgme_data_new_from_cbs(PyObject *self, PyObject *pycbs,
                                    gpgme_data_t *r_data);
 
diff --git a/lang/python/private.h b/lang/python/private.h
new file mode 100644 (file)
index 0000000..cb21f06
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2016 g10 Code GmbH
+ *
+ * This file is part of GPGME.
+ *
+ * GPGME is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * GPGME is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gpgme.h>
+
+#ifndef _PYME_PRIVATE_H_
+#define _PYME_PRIVATE_H_
+
+void pygpgme_exception_init(void);
+gpgme_error_t pygpgme_exception2code(void);
+
+PyObject *object_to_gpgme_t(PyObject *input, const char *objtype, int argnum);
+PyObject *object_to_gpgme_data_t(PyObject *input, int argnum,
+                                gpgme_data_t *wrapper,
+                                PyObject **bytesio, Py_buffer *view);
+
+PyObject *pygpgme_wrap_fragile_result(PyObject *fragile, const char *classname);
+
+gpgme_error_t pyEditCb(void *opaque, gpgme_status_code_t status,
+                      const char *args, int fd);
+
+#endif /* _PYME_PRIVATE_H_ */