| Index: third_party/libxml/src/python/libxml_wrap.h
|
| diff --git a/third_party/libxml/src/python/libxml_wrap.h b/third_party/libxml/src/python/libxml_wrap.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..53a061807e9ddcde35244a5add014f0b7e89a80d
|
| --- /dev/null
|
| +++ b/third_party/libxml/src/python/libxml_wrap.h
|
| @@ -0,0 +1,279 @@
|
| +#include <Python.h>
|
| +#include <libxml/tree.h>
|
| +#include <libxml/parser.h>
|
| +#include <libxml/parserInternals.h>
|
| +#include <libxml/catalog.h>
|
| +#include <libxml/threads.h>
|
| +#include <libxml/nanoftp.h>
|
| +#include <libxml/nanohttp.h>
|
| +#include <libxml/uri.h>
|
| +#include <libxml/xpath.h>
|
| +#include <libxml/xpathInternals.h>
|
| +#include <libxml/debugXML.h>
|
| +#include <libxml/HTMLparser.h>
|
| +#include <libxml/HTMLtree.h>
|
| +#include <libxml/xinclude.h>
|
| +#include <libxml/xpointer.h>
|
| +#include <libxml/xmlunicode.h>
|
| +#include <libxml/xmlregexp.h>
|
| +#include <libxml/xmlautomata.h>
|
| +#include <libxml/xmlreader.h>
|
| +#ifdef LIBXML_SCHEMAS_ENABLED
|
| +#include <libxml/relaxng.h>
|
| +#include <libxml/xmlschemas.h>
|
| +#endif
|
| +
|
| +/*
|
| + * for older versions of Python, we don't use PyBytes, but keep PyString
|
| + * and don't use Capsule but CObjects
|
| + */
|
| +#if PY_VERSION_HEX < 0x02070000
|
| +#ifndef PyBytes_Check
|
| +#define PyBytes_Check PyString_Check
|
| +#define PyBytes_Size PyString_Size
|
| +#define PyBytes_AsString PyString_AsString
|
| +#define PyBytes_AS_STRING PyString_AS_STRING
|
| +#define PyBytes_GET_SIZE PyString_GET_SIZE
|
| +#endif
|
| +#ifndef PyCapsule_New
|
| +#define PyCapsule_New PyCObject_FromVoidPtrAndDesc
|
| +#define PyCapsule_CheckExact PyCObject_Check
|
| +#define PyCapsule_GetPointer(o, n) PyCObject_GetDesc((o))
|
| +#endif
|
| +#endif
|
| +
|
| +/**
|
| + * ATTRIBUTE_UNUSED:
|
| + *
|
| + * Macro used to signal to GCC unused function parameters
|
| + * Repeated here since the definition is not available when
|
| + * compiled outside the libxml2 build tree.
|
| + */
|
| +#ifdef __GNUC__
|
| +#ifdef ATTRIBUTE_UNUSED
|
| +#undef ATTRIBUTE_UNUSED
|
| +#endif
|
| +#ifndef ATTRIBUTE_UNUSED
|
| +#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
| +#endif /* ATTRIBUTE_UNUSED */
|
| +#else
|
| +#define ATTRIBUTE_UNUSED
|
| +#endif
|
| +
|
| +#define PyxmlNode_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyxmlNode_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlNodePtr obj;
|
| +} PyxmlNode_Object;
|
| +
|
| +#define PyxmlXPathContext_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyxmlXPathContext_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlXPathContextPtr obj;
|
| +} PyxmlXPathContext_Object;
|
| +
|
| +#define PyxmlXPathParserContext_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyxmlXPathParserContext_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlXPathParserContextPtr obj;
|
| +} PyxmlXPathParserContext_Object;
|
| +
|
| +#define PyparserCtxt_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyparserCtxt_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlParserCtxtPtr obj;
|
| +} PyparserCtxt_Object;
|
| +
|
| +#define PyValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyValidCtxt_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlValidCtxtPtr obj;
|
| +} PyValidCtxt_Object;
|
| +
|
| +#define Pycatalog_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((Pycatalog_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlCatalogPtr obj;
|
| +} Pycatalog_Object;
|
| +
|
| +#ifdef LIBXML_REGEXP_ENABLED
|
| +#define PyxmlReg_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyxmlReg_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlRegexpPtr obj;
|
| +} PyxmlReg_Object;
|
| +#endif /* LIBXML_REGEXP_ENABLED */
|
| +
|
| +#ifdef LIBXML_READER_ENABLED
|
| +#define PyxmlTextReader_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyxmlTextReader_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlTextReaderPtr obj;
|
| +} PyxmlTextReader_Object;
|
| +
|
| +#define PyxmlTextReaderLocator_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyxmlTextReaderLocator_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlTextReaderLocatorPtr obj;
|
| +} PyxmlTextReaderLocator_Object;
|
| +#endif
|
| +
|
| +#define PyURI_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyURI_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlErrorPtr obj;
|
| +} PyError_Object;
|
| +
|
| +#define PyError_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyError_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlOutputBufferPtr obj;
|
| +} PyoutputBuffer_Object;
|
| +
|
| +#define PyoutputBuffer_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyoutputBuffer_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlParserInputBufferPtr obj;
|
| +} PyinputBuffer_Object;
|
| +
|
| +#define PyinputBuffer_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyinputBuffer_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlURIPtr obj;
|
| +} PyURI_Object;
|
| +
|
| +/* FILE * have their own internal representation */
|
| +#if PY_MAJOR_VERSION >= 3
|
| +FILE *libxml_PyFileGet(PyObject *f);
|
| +void libxml_PyFileRelease(FILE *f);
|
| +#define PyFile_Get(v) (((v) == Py_None) ? NULL : libxml_PyFileGet(v))
|
| +#define PyFile_Release(f) libxml_PyFileRelease(f)
|
| +#else
|
| +#define PyFile_Get(v) (((v) == Py_None) ? NULL : \
|
| + (PyFile_Check(v) ? (PyFile_AsFile(v)) : stdout))
|
| +#define PyFile_Release(f)
|
| +#endif
|
| +
|
| +#ifdef LIBXML_SCHEMAS_ENABLED
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlRelaxNGPtr obj;
|
| +} PyrelaxNgSchema_Object;
|
| +
|
| +#define PyrelaxNgSchema_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyrelaxNgSchema_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlRelaxNGParserCtxtPtr obj;
|
| +} PyrelaxNgParserCtxt_Object;
|
| +
|
| +#define PyrelaxNgParserCtxt_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyrelaxNgParserCtxt_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlRelaxNGValidCtxtPtr obj;
|
| +} PyrelaxNgValidCtxt_Object;
|
| +
|
| +#define PyrelaxNgValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PyrelaxNgValidCtxt_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlSchemaPtr obj;
|
| +} PySchema_Object;
|
| +
|
| +#define PySchema_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PySchema_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlSchemaParserCtxtPtr obj;
|
| +} PySchemaParserCtxt_Object;
|
| +
|
| +#define PySchemaParserCtxt_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PySchemaParserCtxt_Object *)(v))->obj))
|
| +
|
| +typedef struct {
|
| + PyObject_HEAD
|
| + xmlSchemaValidCtxtPtr obj;
|
| +} PySchemaValidCtxt_Object;
|
| +
|
| +#define PySchemaValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
|
| + (((PySchemaValidCtxt_Object *)(v))->obj))
|
| +
|
| +#endif /* LIBXML_SCHEMAS_ENABLED */
|
| +
|
| +PyObject * libxml_intWrap(int val);
|
| +PyObject * libxml_longWrap(long val);
|
| +PyObject * libxml_xmlCharPtrWrap(xmlChar *str);
|
| +PyObject * libxml_constxmlCharPtrWrap(const xmlChar *str);
|
| +PyObject * libxml_charPtrWrap(char *str);
|
| +PyObject * libxml_constcharPtrWrap(const char *str);
|
| +PyObject * libxml_charPtrConstWrap(const char *str);
|
| +PyObject * libxml_xmlCharPtrConstWrap(const xmlChar *str);
|
| +PyObject * libxml_xmlDocPtrWrap(xmlDocPtr doc);
|
| +PyObject * libxml_xmlNodePtrWrap(xmlNodePtr node);
|
| +PyObject * libxml_xmlAttrPtrWrap(xmlAttrPtr attr);
|
| +PyObject * libxml_xmlNsPtrWrap(xmlNsPtr ns);
|
| +PyObject * libxml_xmlAttributePtrWrap(xmlAttributePtr ns);
|
| +PyObject * libxml_xmlElementPtrWrap(xmlElementPtr ns);
|
| +PyObject * libxml_doubleWrap(double val);
|
| +PyObject * libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt);
|
| +PyObject * libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt);
|
| +PyObject * libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt);
|
| +PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj);
|
| +PyObject * libxml_xmlValidCtxtPtrWrap(xmlValidCtxtPtr valid);
|
| +PyObject * libxml_xmlCatalogPtrWrap(xmlCatalogPtr obj);
|
| +PyObject * libxml_xmlURIPtrWrap(xmlURIPtr uri);
|
| +PyObject * libxml_xmlOutputBufferPtrWrap(xmlOutputBufferPtr buffer);
|
| +PyObject * libxml_xmlParserInputBufferPtrWrap(xmlParserInputBufferPtr buffer);
|
| +#ifdef LIBXML_REGEXP_ENABLED
|
| +PyObject * libxml_xmlRegexpPtrWrap(xmlRegexpPtr regexp);
|
| +#endif /* LIBXML_REGEXP_ENABLED */
|
| +#ifdef LIBXML_READER_ENABLED
|
| +PyObject * libxml_xmlTextReaderPtrWrap(xmlTextReaderPtr reader);
|
| +PyObject * libxml_xmlTextReaderLocatorPtrWrap(xmlTextReaderLocatorPtr locator);
|
| +#endif
|
| +
|
| +xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject * obj);
|
| +#ifdef LIBXML_SCHEMAS_ENABLED
|
| +PyObject * libxml_xmlRelaxNGPtrWrap(xmlRelaxNGPtr ctxt);
|
| +PyObject * libxml_xmlRelaxNGParserCtxtPtrWrap(xmlRelaxNGParserCtxtPtr ctxt);
|
| +PyObject * libxml_xmlRelaxNGValidCtxtPtrWrap(xmlRelaxNGValidCtxtPtr valid);
|
| +PyObject * libxml_xmlSchemaPtrWrap(xmlSchemaPtr ctxt);
|
| +PyObject * libxml_xmlSchemaParserCtxtPtrWrap(xmlSchemaParserCtxtPtr ctxt);
|
| +PyObject * libxml_xmlSchemaValidCtxtPtrWrap(xmlSchemaValidCtxtPtr valid);
|
| +#endif /* LIBXML_SCHEMAS_ENABLED */
|
| +PyObject * libxml_xmlErrorPtrWrap(xmlErrorPtr error);
|
| +PyObject * libxml_xmlSchemaSetValidErrors(PyObject * self, PyObject * args);
|
| +PyObject * libxml_xmlRegisterInputCallback(PyObject *self, PyObject *args);
|
| +PyObject * libxml_xmlUnregisterInputCallback(PyObject *self, PyObject *args);
|
| +PyObject * libxml_xmlNodeRemoveNsDef(PyObject * self, PyObject * args);
|
|
|