*/
#include <Python.h>
+#include "python/py3compat.h"
#include "includes.h"
#include "libcli/util/pyerrors.h"
#include "lib/registry/registry.h"
extern PyTypeObject PyRegistry;
extern PyTypeObject PyHiveKey;
-void initregistry(void);
-
/*#define PyRegistryKey_AsRegistryKey(obj) pytalloc_get_type(obj, struct registry_key)*/
#define PyRegistry_AsRegistryContext(obj) ((struct registry_context *)pytalloc_get_ptr(obj))
#define PyHiveKey_AsHiveKey(obj) ((struct hive_key*)pytalloc_get_ptr(obj))
int i;
elements = talloc_array(NULL, const char *, PyList_Size(py_elements));
for (i = 0; i < PyList_Size(py_elements); i++)
- elements[i] = PyString_AsString(PyList_GetItem(py_elements, i));
+ elements[i] = PyStr_AsString(PyList_GetItem(py_elements, i));
}
SMB_ASSERT(ctx != NULL);
if (!PyArg_ParseTuple(args, "i", ®type))
return NULL;
- return PyString_FromString(str_regtype(regtype));
+ return PyStr_FromString(str_regtype(regtype));
}
static PyObject *py_get_predef_name(PyObject *self, PyObject *args)
str = reg_get_predef_name(hkey);
if (str == NULL)
Py_RETURN_NONE;
- return PyString_FromString(str);
+ return PyStr_FromString(str);
}
static PyMethodDef py_registry_methods[] = {
{ NULL }
};
-void initregistry(void)
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "registry",
+ .m_doc = "Registry",
+ .m_size = -1,
+ .m_methods = py_registry_methods,
+};
+
+MODULE_INIT_FUNC(registry)
{
PyObject *m;
if (pytalloc_BaseObject_PyType_Ready(&PyHiveKey) < 0)
- return;
+ return NULL;
if (pytalloc_BaseObject_PyType_Ready(&PyRegistry) < 0)
- return;
+ return NULL;
if (pytalloc_BaseObject_PyType_Ready(&PyRegistryKey) < 0)
- return;
+ return NULL;
- m = Py_InitModule3("registry", py_registry_methods, "Registry");
+ m = PyModule_Create(&moduledef);
if (m == NULL)
- return;
+ return NULL;
PyModule_AddObject(m, "HKEY_CLASSES_ROOT", PyInt_FromLong(HKEY_CLASSES_ROOT));
PyModule_AddObject(m, "HKEY_CURRENT_USER", PyInt_FromLong(HKEY_CURRENT_USER));
Py_INCREF(&PyRegistryKey);
PyModule_AddObject(m, "RegistryKey", (PyObject *)&PyRegistryKey);
+
+ return m;
}
deps='torture registry'
)
-
-bld.SAMBA_PYTHON('py_registry',
- source='pyregistry.c',
- public_deps='registry pytalloc-util pyparam_util',
- realname='samba/registry.so'
- )
-
+for env in bld.gen_python_environments():
+ pytalloc_util = bld.pyembed_libname('pytalloc-util')
+ pyparam_util = bld.pyembed_libname('pyparam_util')
+
+ bld.SAMBA_PYTHON('py_registry',
+ source='pyregistry.c',
+ public_deps='registry %s %s' % (pytalloc_util, pyparam_util),
+ realname='samba/registry.so'
+ )