$OpenBSD: patch-gtkmozembed_gtkmozembedmodule_cpp,v 1.1 2010/07/19 14:55:03 landry Exp $ Patch from ubuntu/debian/gentoo See http://patch-tracker.debian.org/patch/series/view/gnome-python-extras/2.25.3-5/01_xul19.patch --- gtkmozembed/gtkmozembedmodule.cpp.orig Sun Jul 11 09:32:15 2010 +++ gtkmozembed/gtkmozembedmodule.cpp Sun Jul 11 09:32:15 2010 @@ -0,0 +1,78 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/* include this first, before NO_IMPORT_PYGOBJECT is defined */ +#include +#include + +#ifdef XPCOM_GLUE +#include "gtkmozembed_glue.cpp" +#endif + +G_BEGIN_DECLS +void initgtkmozembed(void); +void pygtkmozembed_add_constants(PyObject *module, const gchar *strip_prefix); +void pygtkmozembed_register_classes (PyObject *d); +G_END_DECLS + +extern PyMethodDef pygtkmozembed_functions[]; + +void +initgtkmozembed(void) +{ + PyObject *m, *d; + int argc = 0; + + init_pygobject (); + +#ifdef XPCOM_GLUE + static const GREVersionRange greVersion = { + "1.9.1", PR_TRUE, + "1.9.3", PR_FALSE + }; + char xpcomLocation[4096]; + nsresult rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096); + if (NS_FAILED(rv)) { + printf("GRE_GetGREPathWithProperties failed\n"); + return; + } + + // Startup the XPCOM Glue that links us up with XPCOM. + XPCOMGlueStartup(xpcomLocation); + if (NS_FAILED(rv)) { + printf("XPCOMGlueStartup failed\n"); + return; + } + + rv = GTKEmbedGlueStartup(); + if (NS_FAILED(rv)) {printf("location: %s \n", xpcomLocation); + printf("GTKEmbedGlueStartup failed\n"); + return; + } + + rv = GTKEmbedGlueStartupInternal(); + if (NS_FAILED (rv)) { + printf ("GTKEmbedGlueStartupInternal failed\n"); + return; + } + + //gtk_moz_embed_set_comp_path(xpcomLocation); + + char *lastSlash = strrchr(xpcomLocation, '/'); + if (lastSlash) + *lastSlash = '\0'; + + gtk_moz_embed_set_path(xpcomLocation); +#endif + + m = Py_InitModule ("gtkmozembed", pygtkmozembed_functions); + d = PyModule_GetDict (m); + + pygtkmozembed_add_constants(m, "GTK_MOZ_EMBED_"); + pygtkmozembed_register_classes (d); + + if (PyErr_Occurred ()) { + Py_FatalError ("can't initialise module gtkmozembed"); + } +}