blob: fb8b79e8a3b8409a9acee67e56b02e947c519821 [file] [log] [blame]
Daniel Veillard3ce52572002-02-03 15:08:05 +00001#include <Python.h>
Daniel Veillardd2897fd2002-01-30 16:37:32 +00002#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>
Daniel Veillard96fe0952002-01-30 20:52:23 +000013#include <libxml/HTMLparser.h>
14#include <libxml/HTMLtree.h>
15#include <libxml/xinclude.h>
Daniel Veillard1971ee22002-01-31 20:29:19 +000016#include <libxml/xpointer.h>
Daniel Veillard96fe0952002-01-30 20:52:23 +000017
Daniel Veillard36eea2d2002-02-04 00:17:01 +000018#define PyxmlNode_Get(v) (((v) == Py_None) ? NULL : \
19 (((PyxmlNode_Object *)(v))->obj))
Daniel Veillard96fe0952002-01-30 20:52:23 +000020
21typedef struct {
22 PyObject_HEAD
23 xmlNodePtr obj;
24} PyxmlNode_Object;
Daniel Veillardd2897fd2002-01-30 16:37:32 +000025
Daniel Veillard36eea2d2002-02-04 00:17:01 +000026#define PyxmlXPathContext_Get(v) (((v) == Py_None) ? NULL : \
27 (((PyxmlXPathContext_Object *)(v))->obj))
28
Daniel Veillard1971ee22002-01-31 20:29:19 +000029typedef struct {
30 PyObject_HEAD
31 xmlXPathContextPtr obj;
32} PyxmlXPathContext_Object;
33
Daniel Veillard7db38712002-02-07 16:39:11 +000034#define PyxmlXPathParserContext_Get(v) (((v) == Py_None) ? NULL : \
35 (((PyxmlXPathParserContext_Object *)(v))->obj))
36
37typedef struct {
38 PyObject_HEAD
39 xmlXPathParserContextPtr obj;
40} PyxmlXPathParserContext_Object;
41
Daniel Veillard36eea2d2002-02-04 00:17:01 +000042#define PyparserCtxt_Get(v) (((v) == Py_None) ? NULL : \
43 (((PyparserCtxt_Object *)(v))->obj))
44
Daniel Veillard3ce52572002-02-03 15:08:05 +000045typedef struct {
46 PyObject_HEAD
47 xmlParserCtxtPtr obj;
48} PyparserCtxt_Object;
49
Daniel Veillard7db38712002-02-07 16:39:11 +000050#define Pycatalog_Get(v) (((v) == Py_None) ? NULL : \
51 (((Pycatalog_Object *)(v))->obj))
52
53typedef struct {
54 PyObject_HEAD
55 xmlCatalogPtr obj;
56} Pycatalog_Object;
57
58#define PyFile_Get(v) (((v) == Py_None) ? NULL : \
59 (PyFile_Check(v) ? NULL : (PyFile_AsFile(v))))
60
Daniel Veillardd2897fd2002-01-30 16:37:32 +000061PyObject * libxml_intWrap(int val);
Daniel Veillard4e1b26c2002-02-03 20:13:06 +000062PyObject * libxml_longWrap(long val);
Daniel Veillard1971ee22002-01-31 20:29:19 +000063PyObject * libxml_xmlCharPtrWrap(xmlChar *str);
64PyObject * libxml_constxmlCharPtrWrap(const xmlChar *str);
65PyObject * libxml_charPtrWrap(char *str);
66PyObject * libxml_constcharPtrWrap(const char *str);
Daniel Veillardd2897fd2002-01-30 16:37:32 +000067PyObject * libxml_xmlDocPtrWrap(xmlDocPtr doc);
68PyObject * libxml_xmlNodePtrWrap(xmlNodePtr node);
69PyObject * libxml_xmlAttrPtrWrap(xmlAttrPtr attr);
Daniel Veillard1971ee22002-01-31 20:29:19 +000070PyObject * libxml_xmlNsPtrWrap(xmlNsPtr ns);
71PyObject * libxml_xmlAttributePtrWrap(xmlAttributePtr ns);
72PyObject * libxml_xmlElementPtrWrap(xmlElementPtr ns);
Daniel Veillard96fe0952002-01-30 20:52:23 +000073PyObject * libxml_doubleWrap(double val);
Daniel Veillard1971ee22002-01-31 20:29:19 +000074PyObject * libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt);
Daniel Veillard3ce52572002-02-03 15:08:05 +000075PyObject * libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt);
Daniel Veillard7db38712002-02-07 16:39:11 +000076PyObject * libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt);
Daniel Veillard1971ee22002-01-31 20:29:19 +000077PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj);
Daniel Veillard7db38712002-02-07 16:39:11 +000078PyObject * libxml_xmlCatalogPtrWrap(xmlCatalogPtr obj);
Daniel Veillard96fe0952002-01-30 20:52:23 +000079
Daniel Veillard3ce52572002-02-03 15:08:05 +000080xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject * obj);