Conditionalize features not found in PyXML 1.95.2.

This commit is contained in:
Martin v. Löwis 2003-01-21 11:09:21 +00:00
parent 069dde2be3
commit c847f4040d
1 changed files with 15 additions and 0 deletions

View File

@ -5,6 +5,8 @@
#include "frameobject.h"
#include "expat.h"
#define XML_COMBINED_VERSION (10000*XML_MAJOR_VERSION+100*XML_MINOR_VERSION+XML_MICRO_VERSION)
#ifndef PyDoc_STRVAR
/*
@ -47,7 +49,9 @@ enum HandlerTypes {
XmlDecl,
ElementDecl,
AttlistDecl,
#if XML_COMBINED_VERSION >= 19504
SkippedEntity,
#endif
_DummyDecl
};
@ -721,12 +725,14 @@ VOID_HANDLER(AttlistDecl,
STRING_CONV_FUNC,att_type, STRING_CONV_FUNC,dflt,
isrequired))
#if XML_COMBINED_VERSION >= 19504
VOID_HANDLER(SkippedEntity,
(void *userData,
const XML_Char *entityName,
int is_parameter_entity),
("Ni",
string_intern(self, entityName), is_parameter_entity))
#endif
VOID_HANDLER(NotationDecl,
(void *userData,
@ -1122,6 +1128,8 @@ xmlparse_SetParamEntityParsing(xmlparseobject *p, PyObject* args)
return PyInt_FromLong(flag);
}
#if XML_COMBINED_VERSION >= 19505
PyDoc_STRVAR(xmlparse_UseForeignDTD__doc__,
"UseForeignDTD([flag])\n\
Allows the application to provide an artificial external subset if one is\n\
@ -1147,6 +1155,7 @@ xmlparse_UseForeignDTD(xmlparseobject *self, PyObject *args)
Py_INCREF(Py_None);
return Py_None;
}
#endif
static struct PyMethodDef xmlparse_methods[] = {
{"Parse", (PyCFunction)xmlparse_Parse,
@ -1163,8 +1172,10 @@ static struct PyMethodDef xmlparse_methods[] = {
METH_VARARGS, xmlparse_SetParamEntityParsing__doc__},
{"GetInputContext", (PyCFunction)xmlparse_GetInputContext,
METH_VARARGS, xmlparse_GetInputContext__doc__},
#if XML_COMBINED_VERSION >= 19505
{"UseForeignDTD", (PyCFunction)xmlparse_UseForeignDTD,
METH_VARARGS, xmlparse_UseForeignDTD__doc__},
#endif
{NULL, NULL} /* sentinel */
};
@ -1802,6 +1813,7 @@ MODULE_INITFUNC(void)
/* Don't core dump later! */
return;
#if XML_COMBINED_VERSION > 19505
{
const XML_Feature *features = XML_GetFeatureList();
PyObject *list = PyList_New(0);
@ -1830,6 +1842,7 @@ MODULE_INITFUNC(void)
PyModule_AddObject(m, "features", list);
}
}
#endif
#define MYCONST(name) \
PyModule_AddStringConstant(errors_module, #name, \
@ -1969,9 +1982,11 @@ static struct HandlerInfo handler_info[] = {
{"AttlistDeclHandler",
(xmlhandlersetter)XML_SetAttlistDeclHandler,
(xmlhandler)my_AttlistDeclHandler},
#if XML_COMBINED_VERSION >= 19504
{"SkippedEntityHandler",
(xmlhandlersetter)XML_SetSkippedEntityHandler,
(xmlhandler)my_SkippedEntityHandler},
#endif
{NULL, NULL, NULL} /* sentinel */
};