Annotation of embedaddon/libxml2/python/libxml_wrap.h, revision 1.1.1.2

1.1       misho       1: #include <Python.h>
                      2: #include <libxml/tree.h>
                      3: #include <libxml/parser.h>
                      4: #include <libxml/parserInternals.h>
                      5: #include <libxml/catalog.h>
                      6: #include <libxml/threads.h>
                      7: #include <libxml/nanoftp.h>
                      8: #include <libxml/nanohttp.h>
                      9: #include <libxml/uri.h>
                     10: #include <libxml/xpath.h>
                     11: #include <libxml/xpathInternals.h>
                     12: #include <libxml/debugXML.h>
                     13: #include <libxml/HTMLparser.h>
                     14: #include <libxml/HTMLtree.h>
                     15: #include <libxml/xinclude.h>
                     16: #include <libxml/xpointer.h>
                     17: #include <libxml/xmlunicode.h>
                     18: #include <libxml/xmlregexp.h>
                     19: #include <libxml/xmlautomata.h>
                     20: #include <libxml/xmlreader.h>
                     21: #ifdef LIBXML_SCHEMAS_ENABLED
                     22: #include <libxml/relaxng.h>
                     23: #include <libxml/xmlschemas.h>
                     24: #endif
                     25: 
1.1.1.2 ! misho      26: /*
        !            27:  * for older versions of Python, we don't use PyBytes, but keep PyString
        !            28:  * and don't use Capsule but CObjects
        !            29:  */
        !            30: #if PY_VERSION_HEX < 0x02070000
        !            31: #ifndef PyBytes_Check
        !            32: #define PyBytes_Check PyString_Check
        !            33: #define PyBytes_Size PyString_Size
        !            34: #define PyBytes_AsString PyString_AsString
        !            35: #define PyBytes_AS_STRING PyString_AS_STRING
        !            36: #define PyBytes_GET_SIZE PyString_GET_SIZE
        !            37: 
        !            38: #define PyCapsule_New PyCObject_FromVoidPtrAndDesc
        !            39: #define PyCapsule_CheckExact PyCObject_Check
        !            40: #define PyCapsule_GetPointer(o, n) PyCObject_GetDesc((o))
        !            41: 
        !            42: #endif
        !            43: #endif
        !            44: 
1.1       misho      45: /**
                     46:  * ATTRIBUTE_UNUSED:
                     47:  *
                     48:  * Macro used to signal to GCC unused function parameters
                     49:  * Repeated here since the definition is not available when
                     50:  * compiled outside the libxml2 build tree.
                     51:  */
                     52: #ifdef __GNUC__
                     53: #ifdef ATTRIBUTE_UNUSED
                     54: #undef ATTRIBUTE_UNUSED
                     55: #endif
                     56: #ifndef ATTRIBUTE_UNUSED
                     57: #define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
                     58: #endif /* ATTRIBUTE_UNUSED */
                     59: #else
                     60: #define ATTRIBUTE_UNUSED
                     61: #endif
                     62: 
                     63: #define PyxmlNode_Get(v) (((v) == Py_None) ? NULL : \
                     64:        (((PyxmlNode_Object *)(v))->obj))
                     65: 
                     66: typedef struct {
                     67:     PyObject_HEAD
                     68:     xmlNodePtr obj;
                     69: } PyxmlNode_Object;
                     70: 
                     71: #define PyxmlXPathContext_Get(v) (((v) == Py_None) ? NULL : \
                     72:        (((PyxmlXPathContext_Object *)(v))->obj))
                     73: 
                     74: typedef struct {
                     75:     PyObject_HEAD
                     76:     xmlXPathContextPtr obj;
                     77: } PyxmlXPathContext_Object;
                     78: 
                     79: #define PyxmlXPathParserContext_Get(v) (((v) == Py_None) ? NULL : \
                     80:        (((PyxmlXPathParserContext_Object *)(v))->obj))
                     81: 
                     82: typedef struct {
                     83:     PyObject_HEAD
                     84:     xmlXPathParserContextPtr obj;
                     85: } PyxmlXPathParserContext_Object;
                     86: 
                     87: #define PyparserCtxt_Get(v) (((v) == Py_None) ? NULL : \
                     88:         (((PyparserCtxt_Object *)(v))->obj))
                     89: 
                     90: typedef struct {
                     91:     PyObject_HEAD
                     92:     xmlParserCtxtPtr obj;
                     93: } PyparserCtxt_Object;
                     94: 
                     95: #define PyValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
                     96:        (((PyValidCtxt_Object *)(v))->obj))
                     97: 
                     98: typedef struct {
                     99:        PyObject_HEAD
                    100:        xmlValidCtxtPtr obj;
                    101: } PyValidCtxt_Object;
                    102: 
                    103: #define Pycatalog_Get(v) (((v) == Py_None) ? NULL : \
                    104:         (((Pycatalog_Object *)(v))->obj))
                    105: 
                    106: typedef struct {
                    107:     PyObject_HEAD
                    108:     xmlCatalogPtr obj;
                    109: } Pycatalog_Object;
                    110: 
                    111: #ifdef LIBXML_REGEXP_ENABLED
                    112: #define PyxmlReg_Get(v) (((v) == Py_None) ? NULL : \
                    113:         (((PyxmlReg_Object *)(v))->obj))
                    114: 
                    115: typedef struct {
                    116:     PyObject_HEAD
                    117:     xmlRegexpPtr obj;
                    118: } PyxmlReg_Object;
                    119: #endif /* LIBXML_REGEXP_ENABLED */
                    120: 
                    121: #ifdef LIBXML_READER_ENABLED
                    122: #define PyxmlTextReader_Get(v) (((v) == Py_None) ? NULL : \
                    123:         (((PyxmlTextReader_Object *)(v))->obj))
                    124: 
                    125: typedef struct {
                    126:     PyObject_HEAD
                    127:     xmlTextReaderPtr obj;
                    128: } PyxmlTextReader_Object;
                    129: 
                    130: #define PyxmlTextReaderLocator_Get(v) (((v) == Py_None) ? NULL : \
                    131:         (((PyxmlTextReaderLocator_Object *)(v))->obj))
                    132: 
                    133: typedef struct {
                    134:     PyObject_HEAD
                    135:     xmlTextReaderLocatorPtr obj;
                    136: } PyxmlTextReaderLocator_Object;
                    137: #endif
                    138: 
                    139: #define PyURI_Get(v) (((v) == Py_None) ? NULL : \
                    140:        (((PyURI_Object *)(v))->obj))
                    141: 
                    142: typedef struct {
                    143:     PyObject_HEAD
                    144:     xmlErrorPtr obj;
                    145: } PyError_Object;
                    146: 
                    147: #define PyError_Get(v) (((v) == Py_None) ? NULL : \
                    148:        (((PyError_Object *)(v))->obj))
                    149: 
                    150: typedef struct {
                    151:     PyObject_HEAD
                    152:     xmlOutputBufferPtr obj;
                    153: } PyoutputBuffer_Object;
                    154: 
                    155: #define PyoutputBuffer_Get(v) (((v) == Py_None) ? NULL : \
                    156:        (((PyoutputBuffer_Object *)(v))->obj))
                    157: 
                    158: typedef struct {
                    159:     PyObject_HEAD
                    160:     xmlParserInputBufferPtr obj;
                    161: } PyinputBuffer_Object;
                    162: 
                    163: #define PyinputBuffer_Get(v) (((v) == Py_None) ? NULL : \
                    164:        (((PyinputBuffer_Object *)(v))->obj))
                    165: 
                    166: typedef struct {
                    167:     PyObject_HEAD
                    168:     xmlURIPtr obj;
                    169: } PyURI_Object;
                    170: 
                    171: /* FILE * have their own internal representation */
1.1.1.2 ! misho     172: #if PY_MAJOR_VERSION >= 3
        !           173: FILE *libxml_PyFileGet(PyObject *f);
        !           174: void libxml_PyFileRelease(FILE *f);
        !           175: #define PyFile_Get(v) (((v) == Py_None) ? NULL : libxml_PyFileGet(v))
        !           176: #define PyFile_Release(f) libxml_PyFileRelease(f)
        !           177: #else
1.1       misho     178: #define PyFile_Get(v) (((v) == Py_None) ? NULL : \
                    179:        (PyFile_Check(v) ? (PyFile_AsFile(v)) : stdout))
1.1.1.2 ! misho     180: #define PyFile_Release(f)
        !           181: #endif
1.1       misho     182: 
                    183: #ifdef LIBXML_SCHEMAS_ENABLED
                    184: typedef struct {
                    185:     PyObject_HEAD
                    186:     xmlRelaxNGPtr obj;
                    187: } PyrelaxNgSchema_Object;
                    188: 
                    189: #define PyrelaxNgSchema_Get(v) (((v) == Py_None) ? NULL : \
                    190:        (((PyrelaxNgSchema_Object *)(v))->obj))
                    191: 
                    192: typedef struct {
                    193:     PyObject_HEAD
                    194:     xmlRelaxNGParserCtxtPtr obj;
                    195: } PyrelaxNgParserCtxt_Object;
                    196: 
                    197: #define PyrelaxNgParserCtxt_Get(v) (((v) == Py_None) ? NULL : \
                    198:        (((PyrelaxNgParserCtxt_Object *)(v))->obj))
                    199: 
                    200: typedef struct {
                    201:     PyObject_HEAD
                    202:     xmlRelaxNGValidCtxtPtr obj;
                    203: } PyrelaxNgValidCtxt_Object;
                    204: 
                    205: #define PyrelaxNgValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
                    206:        (((PyrelaxNgValidCtxt_Object *)(v))->obj))
                    207: 
                    208: typedef struct {
                    209:        PyObject_HEAD
                    210:        xmlSchemaPtr obj;
                    211: } PySchema_Object;
                    212: 
                    213: #define PySchema_Get(v) (((v) == Py_None) ? NULL : \
                    214:        (((PySchema_Object *)(v))->obj))
                    215: 
                    216: typedef struct {
                    217:        PyObject_HEAD
                    218:        xmlSchemaParserCtxtPtr obj;
                    219: } PySchemaParserCtxt_Object;
                    220: 
                    221: #define PySchemaParserCtxt_Get(v) (((v) == Py_None) ? NULL : \
                    222:        (((PySchemaParserCtxt_Object *)(v))->obj))
                    223: 
                    224: typedef struct {
                    225:        PyObject_HEAD
                    226:        xmlSchemaValidCtxtPtr obj;
                    227: } PySchemaValidCtxt_Object;
                    228: 
                    229: #define PySchemaValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
                    230:        (((PySchemaValidCtxt_Object *)(v))->obj))
                    231: 
                    232: #endif /* LIBXML_SCHEMAS_ENABLED */
                    233: 
                    234: PyObject * libxml_intWrap(int val);
                    235: PyObject * libxml_longWrap(long val);
                    236: PyObject * libxml_xmlCharPtrWrap(xmlChar *str);
                    237: PyObject * libxml_constxmlCharPtrWrap(const xmlChar *str);
                    238: PyObject * libxml_charPtrWrap(char *str);
                    239: PyObject * libxml_constcharPtrWrap(const char *str);
                    240: PyObject * libxml_charPtrConstWrap(const char *str);
                    241: PyObject * libxml_xmlCharPtrConstWrap(const xmlChar *str);
                    242: PyObject * libxml_xmlDocPtrWrap(xmlDocPtr doc);
                    243: PyObject * libxml_xmlNodePtrWrap(xmlNodePtr node);
                    244: PyObject * libxml_xmlAttrPtrWrap(xmlAttrPtr attr);
                    245: PyObject * libxml_xmlNsPtrWrap(xmlNsPtr ns);
                    246: PyObject * libxml_xmlAttributePtrWrap(xmlAttributePtr ns);
                    247: PyObject * libxml_xmlElementPtrWrap(xmlElementPtr ns);
                    248: PyObject * libxml_doubleWrap(double val);
                    249: PyObject * libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt);
                    250: PyObject * libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt);
                    251: PyObject * libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt);
                    252: PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj);
                    253: PyObject * libxml_xmlValidCtxtPtrWrap(xmlValidCtxtPtr valid);
                    254: PyObject * libxml_xmlCatalogPtrWrap(xmlCatalogPtr obj);
                    255: PyObject * libxml_xmlURIPtrWrap(xmlURIPtr uri);
                    256: PyObject * libxml_xmlOutputBufferPtrWrap(xmlOutputBufferPtr buffer);
                    257: PyObject * libxml_xmlParserInputBufferPtrWrap(xmlParserInputBufferPtr buffer);
                    258: #ifdef LIBXML_REGEXP_ENABLED
                    259: PyObject * libxml_xmlRegexpPtrWrap(xmlRegexpPtr regexp);
                    260: #endif /* LIBXML_REGEXP_ENABLED */
                    261: #ifdef LIBXML_READER_ENABLED
                    262: PyObject * libxml_xmlTextReaderPtrWrap(xmlTextReaderPtr reader);
                    263: PyObject * libxml_xmlTextReaderLocatorPtrWrap(xmlTextReaderLocatorPtr locator);
                    264: #endif
                    265: 
                    266: xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject * obj);
                    267: #ifdef LIBXML_SCHEMAS_ENABLED
                    268: PyObject * libxml_xmlRelaxNGPtrWrap(xmlRelaxNGPtr ctxt);
                    269: PyObject * libxml_xmlRelaxNGParserCtxtPtrWrap(xmlRelaxNGParserCtxtPtr ctxt);
                    270: PyObject * libxml_xmlRelaxNGValidCtxtPtrWrap(xmlRelaxNGValidCtxtPtr valid);
                    271: PyObject * libxml_xmlSchemaPtrWrap(xmlSchemaPtr ctxt);
                    272: PyObject * libxml_xmlSchemaParserCtxtPtrWrap(xmlSchemaParserCtxtPtr ctxt);
                    273: PyObject * libxml_xmlSchemaValidCtxtPtrWrap(xmlSchemaValidCtxtPtr valid);
                    274: #endif /* LIBXML_SCHEMAS_ENABLED */
                    275: PyObject * libxml_xmlErrorPtrWrap(xmlErrorPtr error);
                    276: PyObject * libxml_xmlSchemaSetValidErrors(PyObject * self, PyObject * args);
1.1.1.2 ! misho     277: PyObject * libxml_xmlRegisterInputCallback(PyObject *self, PyObject *args);
        !           278: PyObject * libxml_xmlUnregisterInputCallback(PyObject *self, PyObject *args);
        !           279: PyObject * libxml_xmlNodeRemoveNsDef(PyObject * self, PyObject * args);

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>