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{ 222bce6a61e68eca99575d4720a9b524ecbc30b04b1Patrick Monnerat return xmlXPathNodeSetGetLength(ns); 22302fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat} 22402fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat 22502fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat 22602fd12987418007568cd9bad12eef08a75fb134bPatrick MonneratxmlNodePtr 2275378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__xmlXPathNodeSetItem(const xmlNodeSet * ns, int index) 22802fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat 22902fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat{ 230bce6a61e68eca99575d4720a9b524ecbc30b04b1Patrick Monnerat return xmlXPathNodeSetItem(ns, index); 23102fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat} 23202fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat 23302fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat 23402fd12987418007568cd9bad12eef08a75fb134bPatrick Monneratint 2355378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__xmlXPathNodeSetIsEmpty(const xmlNodeSet * ns) 23602fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat 23702fd12987418007568cd9bad12eef08a75fb134bPatrick Monnerat{ 238bce6a61e68eca99575d4720a9b524ecbc30b04b1Patrick 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{ 2505378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat return htmlDefaultSubelement(elt); 2515378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat} 2525378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat 2535378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat 2545378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monneratint 2555378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__htmlElementAllowedHereDesc(const htmlElemDesc * parent, 2565378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat const htmlElemDesc * elt) 2575378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat 2585378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat{ 2595378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat return htmlElementAllowedHereDesc(parent, elt); 2605378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat} 2615378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat 2625378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat 2635378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monneratconst char * * 2645378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat__htmlRequiredAttrs(const htmlElemDesc * elt) 2655378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat 2665378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat{ 2675378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat return htmlRequiredAttrs(elt); 2685378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat} 2695378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat 2705378ff9378833f9aac764c1d296cf8f16179ecf5Patrick Monnerat#endif 271