17d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat/**
27d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***     Additional procedures for ILE/RPG support.
37d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***
47d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***     See Copyright for the status of this software.
57d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***
67d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***     Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
77d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat**/
87d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
97d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#include <sys/types.h>
107d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
117d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#include <stdarg.h>
127d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
137d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#include "libxml/xmlmemory.h"
1402fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat#include "libxml/xpath.h"
157d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#include "libxml/parser.h"
165378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat#include "libxml/HTMLparser.h"
177d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
187d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#include "rpgsupport.h"
197d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
207d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
217d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat/**
225378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat***     ILE/RPG cannot directly derefence a pointer and has no macros.
237d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***     The following additional procedures supply these functions.
247d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***     In addition, the following code is adjusted for threads control at
257d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***             compile time via the C macros.
267d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat**/
277d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
287d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#define THREADED_VAR(name, type)                                        \
297d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat                type __get_##name(void) { return name; }                \
307d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat                void __set_##name(type arg) { name = arg; }
317d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
327d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
337d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlFree, xmlFreeFunc)
347d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
357d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid
367d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlFree(void * mem)
377d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
387d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
397d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        xmlFree(mem);
407d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
417d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
427d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
437d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlMalloc, xmlMallocFunc)
447d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
457d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid *
467d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlMalloc(size_t size)
477d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
487d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
497d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        return xmlMalloc(size);
507d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
517d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
527d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
537d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlMallocAtomic, xmlMallocFunc)
547d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
557d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid *
567d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlMallocAtomic(size_t size)
577d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
587d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
597d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        return xmlMallocAtomic(size);
607d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
617d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
627d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
637d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlRealloc, xmlReallocFunc)
647d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
657d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid *
667d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlRealloc(void * mem, size_t size)
677d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
687d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
697d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        return xmlRealloc(mem, size);
707d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
717d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
727d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
737d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlMemStrdup, xmlStrdupFunc)
747d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
757d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratchar *
767d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlMemStrdup(const char * str)
777d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
787d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
797d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        return xmlMemStrdup(str);
807d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
817d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
827d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
837d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#ifdef LIBXML_DOCB_ENABLED
847d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(docbDefaultSAXHandler, xmlSAXHandlerV1)
857d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#endif
867d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
877d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
887d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#ifdef LIBXML_HTML_ENABLED
897d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(htmlDefaultSAXHandler, xmlSAXHandlerV1)
907d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat#endif
917d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
927d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
937d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlLastError, xmlError)
947d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
957d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(oldXMLWDcompatibility, int)
967d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlBufferAllocScheme, xmlBufferAllocationScheme)
977d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlDefaultBufferSize, int)
987d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlDefaultSAXHandler, xmlSAXHandlerV1)
997d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlDefaultSAXLocator, xmlSAXLocator)
1007d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlDoValidityCheckingDefaultValue, int)
1017d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1027d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat/* No caller to xmlGenericError() because the argument list is unknown. */
1037d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlGenericError, xmlGenericErrorFunc)
1047d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1057d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1067d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlStructuredError, xmlStructuredErrorFunc)
1077d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1087d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid
1097d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlStructuredError(void * userData, xmlErrorPtr error)
1107d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1117d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
1127d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        xmlStructuredError(userData, error);
1137d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
1147d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1157d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlGenericErrorContext, void *)
1167d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlStructuredErrorContext, void *)
1177d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlGetWarningsDefaultValue, int)
1187d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlIndentTreeOutput, int)
1197d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlTreeIndentString, const char *)
1207d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlKeepBlanksDefaultValue, int)
1217d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlLineNumbersDefaultValue, int)
1227d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlLoadExtDtdDefaultValue, int)
1237d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlParserDebugEntities, int)
1247d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlParserVersion, const char *)
1257d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlPedanticParserDefaultValue, int)
1267d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlSaveNoEmptyTags, int)
1277d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlSubstituteEntitiesDefaultValue, int)
1287d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1297d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1307d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlRegisterNodeDefaultValue, xmlRegisterNodeFunc)
1317d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1327d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid
1337d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlRegisterNodeDefaultValue(xmlNodePtr node)
1347d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1357d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
1367d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        xmlRegisterNodeDefaultValue(node);
1377d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
1387d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1397d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1407d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlDeregisterNodeDefaultValue, xmlDeregisterNodeFunc)
1417d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1427d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid
1437d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlDeregisterNodeDefaultValue(xmlNodePtr node)
1447d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1457d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
1467d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        xmlDeregisterNodeDefaultValue(node);
1477d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
1487d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1497d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1507d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlParserInputBufferCreateFilenameValue, xmlParserInputBufferCreateFilenameFunc)
1517d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1527d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratxmlParserInputBufferPtr
1537d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlParserInputBufferCreateFilenameValue(const char *URI,
1547d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat                                                        xmlCharEncoding enc)
1557d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1567d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
1577d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        return xmlParserInputBufferCreateFilenameValue(URI, enc);
1587d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
1597d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1607d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1617d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratTHREADED_VAR(xmlOutputBufferCreateFilenameValue, xmlOutputBufferCreateFilenameFunc)
1627d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1637d888f07d86454025e4629ee36fdb5b3876f62eaPatrick MonneratxmlOutputBufferPtr
1647d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__call_xmlOutputBufferCreateFilenameValue(const char *URI,
1657d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat                        xmlCharEncodingHandlerPtr encoder, int compression)
1667d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1677d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
1687d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        return xmlOutputBufferCreateFilenameValue(URI, encoder, compression);
1697d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
1707d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1717d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1727d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1737d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat/**
1747d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat***     va_list support.
1757d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat**/
1767d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1777d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid
1787d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__xmlVaStart(char * * list, char * lastargaddr, size_t lastargsize)
1797d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1807d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
1817d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        list[1] = lastargaddr + lastargsize;
1827d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
1837d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1847d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1857d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid *
1867d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat__xmlVaArg(char * * list, void * dest, size_t argsize)
1877d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1887d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
1897d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        size_t align;
1907d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1917d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        if (!argsize)
1927d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat                return (void *) NULL;
1937d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1947d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        for (align = 16; align > argsize; align >>= 1)
1957d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat                ;
1967d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
1977d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        align--;
1987d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        list[0] = list[1] + (align - (((size_t) list[0] - 1) & align));
1997d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        list[1] = list[0] + argsize;
2007d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
2017d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        if (dest)
2027d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat                memcpy(dest, list[0], argsize);
2037d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
2047d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        return (void *) list[0];
2057d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
2067d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
2077d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
2087d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monneratvoid
20902fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat__xmlVaEnd(char * * list)
2107d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat
2117d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat{
2127d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat        /* Nothing to do. */
2137d888f07d86454025e4629ee36fdb5b3876f62eaPatrick Monnerat}
21402fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
21502fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
21602fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat#ifdef LIBXML_XPATH_ENABLED
217bce6a61e68eca99575d4720a9b524ecbc30b04b1Patrick Monnerat
21802fd12987418007568cd9bad12eef08a75fb134bPatrick Monneratint
2195378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__xmlXPathNodeSetGetLength(const xmlNodeSet * ns)
22002fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
22102fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat{
222cad1634ef40badd0a4b696af03016a9600af9c13Patrick Monnerat        return xmlXPathNodeSetGetLength(ns);
22302fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat}
22402fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
22502fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
22602fd12987418007568cd9bad12eef08a75fb134bPatrick MonneratxmlNodePtr
2275378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__xmlXPathNodeSetItem(const xmlNodeSet * ns, int index)
22802fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
22902fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat{
230cad1634ef40badd0a4b696af03016a9600af9c13Patrick Monnerat        return xmlXPathNodeSetItem(ns, index);
23102fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat}
23202fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
23302fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
23402fd12987418007568cd9bad12eef08a75fb134bPatrick Monneratint
2355378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__xmlXPathNodeSetIsEmpty(const xmlNodeSet * ns)
23602fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat
23702fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat{
238cad1634ef40badd0a4b696af03016a9600af9c13Patrick Monnerat        return xmlXPathNodeSetIsEmpty(ns);
23902fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat}
240bce6a61e68eca99575d4720a9b524ecbc30b04b1Patrick Monnerat
24102fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat#endif
2425378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2435378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2445378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat#ifdef LIBXML_HTML_ENABLED
2455378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2465378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monneratconst char *
2475378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__htmlDefaultSubelement(const htmlElemDesc * elt)
2485378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2495378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat{
250cad1634ef40badd0a4b696af03016a9600af9c13Patrick Monnerat        return htmlDefaultSubelement(elt);
2515378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat}
2525378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2535378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2545378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monneratint
2555378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__htmlElementAllowedHereDesc(const htmlElemDesc * parent,
256cad1634ef40badd0a4b696af03016a9600af9c13Patrick Monnerat                                                const htmlElemDesc * elt)
2575378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2585378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat{
259cad1634ef40badd0a4b696af03016a9600af9c13Patrick Monnerat        return htmlElementAllowedHereDesc(parent, elt);
2605378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat}
2615378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2625378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2635378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monneratconst char * *
2645378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__htmlRequiredAttrs(const htmlElemDesc * elt)
2655378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2665378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat{
267cad1634ef40badd0a4b696af03016a9600af9c13Patrick Monnerat        return htmlRequiredAttrs(elt);
2685378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat}
2695378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat
2705378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat#endif
271