1b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/*
2b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * globals.c: definition and handling of the set of global variables
3b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard *            of the library
4b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard *
5b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * The bottom of this file is automatically generated by build_glob.py
6b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * based on the description file global.data
7b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard *
8b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * See Copyright for the status of this software.
9b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard *
10b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * Gary Pennington <Gary.Pennington@uk.sun.com>
11b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * daniel@veillard.com
12b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
13b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
1434ce8bece2f22cc99d25221b77315cd008f4866bDaniel Veillard#define IN_LIBXML
15b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#include "libxml.h"
16b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
17e70906192ca48073ac57cb6f0c32202aa2d93822Daniel Veillard#ifdef HAVE_STDLIB_H
1877d19aea03551c578132eb11c27963fc4a53c30aJaka Mocnik#include <stdlib.h>
19e70906192ca48073ac57cb6f0c32202aa2d93822Daniel Veillard#endif
2077d19aea03551c578132eb11c27963fc4a53c30aJaka Mocnik#include <string.h>
2177d19aea03551c578132eb11c27963fc4a53c30aJaka Mocnik
223c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard#include <libxml/globals.h>
23e70906192ca48073ac57cb6f0c32202aa2d93822Daniel Veillard#include <libxml/xmlmemory.h>
24781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard#include <libxml/threads.h>
25e70906192ca48073ac57cb6f0c32202aa2d93822Daniel Veillard
263c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard/* #define DEBUG_GLOBALS */
273c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard
28b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/*
29b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * Helpful Macro
30b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
313c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard#ifdef LIBXML_THREAD_ENABLED
323c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard#define IS_MAIN_THREAD (xmlIsMainThread())
33b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#else
34b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#define IS_MAIN_THREAD 1
35b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#endif
36b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
37781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard/*
38781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard * Mutex to protect "ForNewThreads" variables
39781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard */
40781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic xmlMutexPtr xmlThrDefMutex = NULL;
41781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
42966668a703de347886cf1110537b6954a903fb68William M. Brack/**
43966668a703de347886cf1110537b6954a903fb68William M. Brack * xmlInitGlobals:
44966668a703de347886cf1110537b6954a903fb68William M. Brack *
45966668a703de347886cf1110537b6954a903fb68William M. Brack * Additional initialisation for multi-threading
46966668a703de347886cf1110537b6954a903fb68William M. Brack */
4775e389d4e0ccd998d288387051e66a8f0b2af1b0Daniel Veillardvoid xmlInitGlobals(void)
48781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard{
492c2128387d7b5670f7f4a54cedc45b3b29552630Kai Henning    if (xmlThrDefMutex == NULL)
5044d1eff028ad103a3f33699d0d62b0468664c103MOD        xmlThrDefMutex = xmlNewMutex();
51781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
52781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
53966668a703de347886cf1110537b6954a903fb68William M. Brack/**
54966668a703de347886cf1110537b6954a903fb68William M. Brack * xmlCleanupGlobals:
55966668a703de347886cf1110537b6954a903fb68William M. Brack *
56966668a703de347886cf1110537b6954a903fb68William M. Brack * Additional cleanup for multi-threading
57966668a703de347886cf1110537b6954a903fb68William M. Brack */
5875e389d4e0ccd998d288387051e66a8f0b2af1b0Daniel Veillardvoid xmlCleanupGlobals(void)
59781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard{
602009c4ed4d2069b0727827a0d47133e24a6146fcDaniel Veillard    if (xmlThrDefMutex != NULL) {
61df101d832da9db9efd59ab194b18ccc5a7274bd1Daniel Veillard	xmlFreeMutex(xmlThrDefMutex);
622009c4ed4d2069b0727827a0d47133e24a6146fcDaniel Veillard	xmlThrDefMutex = NULL;
632009c4ed4d2069b0727827a0d47133e24a6146fcDaniel Veillard    }
64ccc476f177312548342c0a8cc921445024ebc7d2Daniel Veillard    __xmlGlobalInitMutexDestroy();
65781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
66781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
67b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/************************************************************************
68f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard *									*
69b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard *	All the user accessible global variables of the library		*
70f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard *									*
71b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard ************************************************************************/
72b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
73b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/*
74b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * Memory allocation routines
75b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
765ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef	xmlFree
775ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef	xmlMalloc
785ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef	xmlMallocAtomic
795ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef	xmlMemStrdup
805ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef	xmlRealloc
815ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack
827216cfd6622d947695c67b7b430edef8cc0af967Daniel Veillard#if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
83b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlFreeFunc xmlFree = (xmlFreeFunc) xmlMemFree;
84b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlMallocFunc xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
853c908dca479ed50dca24b8593bca90e40dbde6b8Daniel VeillardxmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
86b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlReallocFunc xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
87b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
88b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#else
899d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
909d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlFree:
919d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @mem: an already allocated block of memory
929d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
939d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * The variable holding the libxml free() implementation
949d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
95b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlFreeFunc xmlFree = (xmlFreeFunc) free;
969d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
979d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlMalloc:
989d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @size:  the size requested in bytes
999d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1009d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * The variable holding the libxml malloc() implementation
1019d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1029d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns a pointer to the newly allocated block or NULL in case of error
1039d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
104b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlMallocFunc xmlMalloc = (xmlMallocFunc) malloc;
1059d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
1063c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard * xmlMallocAtomic:
1073c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard * @size:  the size requested in bytes
1083c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard *
1093c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard * The variable holding the libxml malloc() implementation for atomic
1103c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard * data (i.e. blocks not containings pointers), useful when using a
1113c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard * garbage collecting allocator.
1123c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard *
1133c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard * Returns a pointer to the newly allocated block or NULL in case of error
1143c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard */
1153c908dca479ed50dca24b8593bca90e40dbde6b8Daniel VeillardxmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) malloc;
1163c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard/**
1179d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlRealloc:
1189d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @mem: an already allocated block of memory
1199d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @size:  the new size requested in bytes
1209d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1219d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * The variable holding the libxml realloc() implementation
1229d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1239d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns a pointer to the newly reallocated block or NULL in case of error
1249d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
125b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlReallocFunc xmlRealloc = (xmlReallocFunc) realloc;
1269d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
1279d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlMemStrdup:
1289d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @str: a zero terminated string
1299d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1309d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * The variable holding the libxml strdup() implementation
1319d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1329d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns the copy of the string or NULL in case of error
1339d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
134b82c16694d1225a8b7a306394366246f0b56c2f3Daniel VeillardxmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
1352b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard#endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */
136b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
137d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#include <libxml/threads.h>
138d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#include <libxml/globals.h>
139d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#include <libxml/SAX.h>
140d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard
141d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	docbDefaultSAXHandler
142d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	htmlDefaultSAXHandler
143d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	oldXMLWDcompatibility
144d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlBufferAllocScheme
145d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlDefaultBufferSize
146d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlDefaultSAXHandler
147d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlDefaultSAXLocator
148d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlDoValidityCheckingDefaultValue
149d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlGenericError
150659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard#undef	xmlStructuredError
151d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlGenericErrorContext
1521de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam#undef	xmlStructuredErrorContext
153d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlGetWarningsDefaultValue
154d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlIndentTreeOutput
15523002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin#undef  xmlTreeIndentString
156d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlKeepBlanksDefaultValue
157d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlLineNumbersDefaultValue
158d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlLoadExtDtdDefaultValue
159d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlParserDebugEntities
160d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlParserVersion
161d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlPedanticParserDefaultValue
162d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlSaveNoEmptyTags
163d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#undef	xmlSubstituteEntitiesDefaultValue
1648326e73bc163e15fd7b5264c0cc6cf2480723869Daniel Veillard#undef	xmlRegisterNodeDefaultValue
1658326e73bc163e15fd7b5264c0cc6cf2480723869Daniel Veillard#undef	xmlDeregisterNodeDefaultValue
1662b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard#undef	xmlLastError
167d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard
1680335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard#undef  xmlParserInputBufferCreateFilenameValue
1690335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard#undef  xmlOutputBufferCreateFilenameValue
1709d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
1719d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlParserVersion:
1729d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1739d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Constant string describing the internal version of the library
1749d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
175f4025492f51c976edecd92deba5581dab2687773William M. Brackconst char *xmlParserVersion = LIBXML_VERSION_STRING LIBXML_VERSION_EXTRA;
1763c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard
1779d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
1789d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlBufferAllocScheme:
1799d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1809d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, default allocation policy for buffers, default is
1819d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * XML_BUFFER_ALLOC_EXACT
182b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
183b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlBufferAllocationScheme xmlBufferAllocScheme = XML_BUFFER_ALLOC_EXACT;
184781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic xmlBufferAllocationScheme xmlBufferAllocSchemeThrDef = XML_BUFFER_ALLOC_EXACT;
1859d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
1869d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlDefaultBufferSize:
1879d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
1889d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, default buffer size. Default value is BASE_BUFFER_SIZE
1899d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
190b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlDefaultBufferSize = BASE_BUFFER_SIZE;
191781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlDefaultBufferSizeThrDef = BASE_BUFFER_SIZE;
192b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
193b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/*
194b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * Parser defaults
195b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
196d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard
1979d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
1989d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * oldXMLWDcompatibility:
1999d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2009d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, DEPRECATED.
2019d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
202b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint oldXMLWDcompatibility = 0; /* DEPRECATED */
2039d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2049d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlParserDebugEntities:
2059d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2069d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, asking the parser to print out debugging informations.
2079d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * while handling entities.
2089d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Disabled by default
2099d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
210b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlParserDebugEntities = 0;
211781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlParserDebugEntitiesThrDef = 0;
2129d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2139d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlDoValidityCheckingDefaultValue:
2149d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2159d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, indicate that the parser should work in validating mode.
2169d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Disabled by default.
2179d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
218b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlDoValidityCheckingDefaultValue = 0;
219781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlDoValidityCheckingDefaultValueThrDef = 0;
2209d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2219d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlGetWarningsDefaultValue:
2229d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2239d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, indicate that the parser should provide warnings.
2249d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Activated by default.
2259d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
226b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlGetWarningsDefaultValue = 1;
227781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlGetWarningsDefaultValueThrDef = 1;
2289d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2299d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlLoadExtDtdDefaultValue:
2309d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2319d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, indicate that the parser should load DTD while not
2329d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * validating.
2339d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Disabled by default.
2349d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
235b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlLoadExtDtdDefaultValue = 0;
236781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlLoadExtDtdDefaultValueThrDef = 0;
2379d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2389d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlPedanticParserDefaultValue:
2399d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2409d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, indicate that the parser be pedantic
2419d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Disabled by default.
2429d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
243b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlPedanticParserDefaultValue = 0;
244781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlPedanticParserDefaultValueThrDef = 0;
2459d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2469d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlLineNumbersDefaultValue:
2479d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2489d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, indicate that the parser should store the line number
249f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard * in the content field of elements in the DOM tree.
2509d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Disabled by default since this may not be safe for old classes of
2519d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * applicaton.
2529d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
253b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlLineNumbersDefaultValue = 0;
254781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlLineNumbersDefaultValueThrDef = 0;
2559d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2569d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlKeepBlanksDefaultValue:
2579d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2589d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, indicate that the parser should keep all blanks
2599d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * nodes found in the content
2609d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Activated by default, this is actually needed to have the parser
2619d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * conformant to the XML Recommendation, however the option is kept
2629d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * for some applications since this was libxml1 default behaviour.
2639d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
264b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlKeepBlanksDefaultValue = 1;
265781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlKeepBlanksDefaultValueThrDef = 1;
2669d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2679d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlSubstituteEntitiesDefaultValue:
2689d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
2699d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, indicate that the parser should not generate entity
2709d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * references but replace them with the actual content of the entity
2719d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Disabled by default, this should be activated when using XPath since
2729d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * the XPath data model requires entities replacement and the XPath
2739d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * engine does not handle entities references transparently.
2749d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
275b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlSubstituteEntitiesDefaultValue = 0;
276781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlSubstituteEntitiesDefaultValueThrDef = 0;
277b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
2785335dc52afb3400b469264d758be01af84e4cfb0Daniel VeillardxmlRegisterNodeFunc xmlRegisterNodeDefaultValue = NULL;
279781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic xmlRegisterNodeFunc xmlRegisterNodeDefaultValueThrDef = NULL;
2805335dc52afb3400b469264d758be01af84e4cfb0Daniel VeillardxmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue = NULL;
281781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValueThrDef = NULL;
2825335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard
2830335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel VeillardxmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue = NULL;
2840335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillardstatic xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValueThrDef = NULL;
2850335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard
2860335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel VeillardxmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue = NULL;
2870335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillardstatic xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValueThrDef = NULL;
2880335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard
289b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/*
290b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * Error handling
291b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
292b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
293b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/* xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc; */
294b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/* Must initialize xmlGenericError in xmlInitParser */
295ffa3c74933baa45bef5e0d7f15473c38a4c3f9e8Daniel Veillardvoid XMLCDECL xmlGenericErrorDefaultFunc	(void *ctx ATTRIBUTE_UNUSED,
296635ef72a94db9f647dcff11d33f50115564ce091Daniel Veillard				 const char *msg,
297635ef72a94db9f647dcff11d33f50115564ce091Daniel Veillard				 ...);
2989d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
2999d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlGenericError:
3009d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
3019d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting: function used for generic error callbacks
3029d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
303635ef72a94db9f647dcff11d33f50115564ce091Daniel VeillardxmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc;
304781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic xmlGenericErrorFunc xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
3059d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
306659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard * xmlStructuredError:
307659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard *
308659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard * Global setting: function used for structured error callbacks
309659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard */
310659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel VeillardxmlStructuredErrorFunc xmlStructuredError = NULL;
311659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillardstatic xmlStructuredErrorFunc xmlStructuredErrorThrDef = NULL;
312659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard/**
3139d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlGenericErrorContext:
3149d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
3159d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting passed to generic error callbacks
3169d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
317b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardvoid *xmlGenericErrorContext = NULL;
318781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic void *xmlGenericErrorContextThrDef = NULL;
3191de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam/**
3201de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam * xmlStructuredErrorContext:
3211de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam *
3221de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam * Global setting passed to structured error callbacks
3231de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam */
3241de382eb061b70b07040b3932c4b6082eb3ded79Wang Lamvoid *xmlStructuredErrorContext = NULL;
3251de382eb061b70b07040b3932c4b6082eb3ded79Wang Lamstatic void *xmlStructuredErrorContextThrDef = NULL;
3262b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel VeillardxmlError xmlLastError;
327b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
328b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/*
329b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * output defaults
330b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
3319d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
3329d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlIndentTreeOutput:
3339d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
3349d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, asking the serializer to indent the output tree by default
33523002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin * Enabled by default
33623002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin */
33723002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Saninint xmlIndentTreeOutput = 1;
338781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic int xmlIndentTreeOutputThrDef = 1;
33923002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin
34023002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin/**
34123002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin * xmlTreeIndentString:
34223002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin *
34323002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin * The string used to do one-level indent. By default is equal to "  " (two spaces)
3449d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
34523002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Saninconst char *xmlTreeIndentString = "  ";
346781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardstatic const char *xmlTreeIndentStringThrDef = "  ";
34723002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin
3489d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
3499d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlSaveNoEmptyTags:
3509d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
3519d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Global setting, asking the serializer to not output empty tags
3529d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * as <empty/> but <empty></empty>. those two forms are undistinguishable
3539d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * once parsed.
3549d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Disabled by default
3559d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
356b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint xmlSaveNoEmptyTags = 0;
35724505b0f5c872c5afb6da5093565e5a6e09ca541Daniel Veillardstatic int xmlSaveNoEmptyTagsThrDef = 0;
358b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
3598127390f0332ddf545fe59e406996deaedfee964Daniel Veillard#ifdef LIBXML_SAX1_ENABLED
3609d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
3619d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlDefaultSAXHandler:
3629d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
363092643b52d29e6b721c257c4c88efa8259eebfe9Daniel Veillard * Default SAX version1 handler for XML, builds the DOM tree
364b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
365092643b52d29e6b721c257c4c88efa8259eebfe9Daniel VeillardxmlSAXHandlerV1 xmlDefaultSAXHandler = {
3661af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2InternalSubset,
3671af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2IsStandalone,
3681af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2HasInternalSubset,
3691af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2HasExternalSubset,
3701af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2ResolveEntity,
3711af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetEntity,
3721af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2EntityDecl,
3731af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2NotationDecl,
3741af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2AttributeDecl,
3751af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2ElementDecl,
3761af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2UnparsedEntityDecl,
3771af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2SetDocumentLocator,
3781af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2StartDocument,
3791af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2EndDocument,
3801af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2StartElement,
3811af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2EndElement,
3821af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Reference,
3831af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Characters,
3841af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Characters,
3851af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2ProcessingInstruction,
3861af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Comment,
387b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserWarning,
388b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserError,
389b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserError,
3901af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetParameterEntity,
3911af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2CDataBlock,
3921af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2ExternalSubset,
3931af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    0,
394b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard};
3958127390f0332ddf545fe59e406996deaedfee964Daniel Veillard#endif /* LIBXML_SAX1_ENABLED */
396b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
3979d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
3989d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlDefaultSAXLocator:
3999d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
4009d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * The default SAX Locator
4019d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * { getPublicId, getSystemId, getLineNumber, getColumnNumber}
402b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
403b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlSAXLocator xmlDefaultSAXLocator = {
4041af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetPublicId,
4051af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetSystemId,
4061af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetLineNumber,
4071af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetColumnNumber
408b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard};
409b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
410b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#ifdef LIBXML_HTML_ENABLED
4119d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
4129d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * htmlDefaultSAXHandler:
4139d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
414092643b52d29e6b721c257c4c88efa8259eebfe9Daniel Veillard * Default old SAX v1 handler for HTML, builds the DOM tree
415b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
416092643b52d29e6b721c257c4c88efa8259eebfe9Daniel VeillardxmlSAXHandlerV1 htmlDefaultSAXHandler = {
4171af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2InternalSubset,
418b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
419b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
420b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
421b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
4221af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetEntity,
423b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
424b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
425b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
426b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
427b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
4281af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2SetDocumentLocator,
4291af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2StartDocument,
4301af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2EndDocument,
4311af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2StartElement,
4321af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2EndElement,
433b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
4341af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Characters,
4351af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2IgnorableWhitespace,
436fc484dd0a01b5f8f2187dd8a6791d5f8677fa816Daniel Veillard    xmlSAX2ProcessingInstruction,
4371af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Comment,
438b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserWarning,
439b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserError,
440b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserError,
4411af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetParameterEntity,
4421af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2CDataBlock,
4431af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    NULL,
4441af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    0,
445b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard};
446b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#endif /* LIBXML_HTML_ENABLED */
447b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
448b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#ifdef LIBXML_DOCB_ENABLED
4499d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
4509d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * docbDefaultSAXHandler:
4519d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
452092643b52d29e6b721c257c4c88efa8259eebfe9Daniel Veillard * Default old SAX v1 handler for SGML DocBook, builds the DOM tree
453b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
454092643b52d29e6b721c257c4c88efa8259eebfe9Daniel VeillardxmlSAXHandlerV1 docbDefaultSAXHandler = {
4551af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2InternalSubset,
4561af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2IsStandalone,
4571af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2HasInternalSubset,
4581af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2HasExternalSubset,
4591af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2ResolveEntity,
4601af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetEntity,
4611af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2EntityDecl,
462b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
463b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
464b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
465b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
4661af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2SetDocumentLocator,
4671af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2StartDocument,
4681af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2EndDocument,
4691af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2StartElement,
4701af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2EndElement,
4711af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Reference,
4721af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Characters,
4731af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2IgnorableWhitespace,
474b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    NULL,
4751af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2Comment,
476b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserWarning,
477b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserError,
478b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    xmlParserError,
4791af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    xmlSAX2GetParameterEntity,
4801af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    NULL,
4811af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    NULL,
4821af9a41f24deb04ababc4075de0005bd75f320f6Daniel Veillard    0,
483b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard};
484b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#endif /* LIBXML_DOCB_ENABLED */
485b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
486b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard/**
487b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * xmlInitializeGlobalState:
488b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * @gs: a pointer to a newly allocated global state
489b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard *
490b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * xmlInitializeGlobalState() initialize a global state with all the
491b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard * default values of the library.
492b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard */
493b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardvoid
494b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlInitializeGlobalState(xmlGlobalStatePtr gs)
495b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard{
4963c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard#ifdef DEBUG_GLOBALS
4973c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard    fprintf(stderr, "Initializing globals at %lu for thread %d\n",
4983c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard	    (unsigned long) gs, xmlGetThreadId());
4993c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard#endif
5003c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard
501b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    /*
502cbaf399537a1fb69ef97b079e4cb553869aaa4d9Daniel Veillard     * Perform initialization as required by libxml
503b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard     */
5045805be2921d68e7728797b2f4d43a0b57a476507Daniel Veillard    if (xmlThrDefMutex == NULL)
5055805be2921d68e7728797b2f4d43a0b57a476507Daniel Veillard        xmlInitGlobals();
5065805be2921d68e7728797b2f4d43a0b57a476507Daniel Veillard
507781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
5088b2c7f10f16dbf1366c7beb89e8c5ab1c4062a1fWilliam M. Brack
509bca3ad25f93b7895c4c89ea38551a2873cbbd3e1Daniel Veillard#if defined(LIBXML_DOCB_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
510092643b52d29e6b721c257c4c88efa8259eebfe9Daniel Veillard    initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
511a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard#endif
512961b535c10c7d07d7919c58c1d0c6762b35503a1Akira TAGOH#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
513092643b52d29e6b721c257c4c88efa8259eebfe9Daniel Veillard    inithtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler);
514a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard#endif
5153c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard
516b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->oldXMLWDcompatibility = 0;
517781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlBufferAllocScheme = xmlBufferAllocSchemeThrDef;
518781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlDefaultBufferSize = xmlDefaultBufferSizeThrDef;
51921e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_SAX1_ENABLED) && defined(LIBXML_LEGACY_ENABLED)
520092643b52d29e6b721c257c4c88efa8259eebfe9Daniel Veillard    initxmlDefaultSAXHandler(&gs->xmlDefaultSAXHandler, 1);
5218127390f0332ddf545fe59e406996deaedfee964Daniel Veillard#endif /* LIBXML_SAX1_ENABLED */
5224432df239b7aba6bff86c838e0be11d08f283b76Daniel Veillard    gs->xmlDefaultSAXLocator.getPublicId = xmlSAX2GetPublicId;
5234432df239b7aba6bff86c838e0be11d08f283b76Daniel Veillard    gs->xmlDefaultSAXLocator.getSystemId = xmlSAX2GetSystemId;
5244432df239b7aba6bff86c838e0be11d08f283b76Daniel Veillard    gs->xmlDefaultSAXLocator.getLineNumber = xmlSAX2GetLineNumber;
5254432df239b7aba6bff86c838e0be11d08f283b76Daniel Veillard    gs->xmlDefaultSAXLocator.getColumnNumber = xmlSAX2GetColumnNumber;
526f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard    gs->xmlDoValidityCheckingDefaultValue =
527781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard         xmlDoValidityCheckingDefaultValueThrDef;
528b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#if defined(DEBUG_MEMORY_LOCATION) | defined(DEBUG_MEMORY)
529b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->xmlFree = (xmlFreeFunc) xmlMemFree;
530b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
5313c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard    gs->xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
532b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
533b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
534b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#else
535b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->xmlFree = (xmlFreeFunc) free;
536b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->xmlMalloc = (xmlMallocFunc) malloc;
5373c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard    gs->xmlMallocAtomic = (xmlMallocFunc) malloc;
538b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->xmlRealloc = (xmlReallocFunc) realloc;
539572577e094bd436b2124aa0ef44df3d57f97d793Daniel Veillard    gs->xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
540b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#endif
541781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlGetWarningsDefaultValue = xmlGetWarningsDefaultValueThrDef;
542781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlIndentTreeOutput = xmlIndentTreeOutputThrDef;
543781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlTreeIndentString = xmlTreeIndentStringThrDef;
544781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlKeepBlanksDefaultValue = xmlKeepBlanksDefaultValueThrDef;
545781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlLineNumbersDefaultValue = xmlLineNumbersDefaultValueThrDef;
546781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlLoadExtDtdDefaultValue = xmlLoadExtDtdDefaultValueThrDef;
547781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlParserDebugEntities = xmlParserDebugEntitiesThrDef;
548b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    gs->xmlParserVersion = LIBXML_VERSION_STRING;
549781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlPedanticParserDefaultValue = xmlPedanticParserDefaultValueThrDef;
550781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlSaveNoEmptyTags = xmlSaveNoEmptyTagsThrDef;
551f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard    gs->xmlSubstituteEntitiesDefaultValue =
552781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard        xmlSubstituteEntitiesDefaultValueThrDef;
553781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
554781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlGenericError = xmlGenericErrorThrDef;
555659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard    gs->xmlStructuredError = xmlStructuredErrorThrDef;
556781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlGenericErrorContext = xmlGenericErrorContextThrDef;
5571de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam    gs->xmlStructuredErrorContext = xmlStructuredErrorContextThrDef;
558781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlRegisterNodeDefaultValue = xmlRegisterNodeDefaultValueThrDef;
559781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    gs->xmlDeregisterNodeDefaultValue = xmlDeregisterNodeDefaultValueThrDef;
5600335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard
5610335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard	gs->xmlParserInputBufferCreateFilenameValue = xmlParserInputBufferCreateFilenameValueThrDef;
5620335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard	gs->xmlOutputBufferCreateFilenameValue = xmlOutputBufferCreateFilenameValueThrDef;
5632b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard    memset(&gs->xmlLastError, 0, sizeof(xmlError));
5645335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard
565781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
566781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
567781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
5681e90661bb817402f85103c3b9d3ce6ebab570f38Daniel Veillard/**
5691e90661bb817402f85103c3b9d3ce6ebab570f38Daniel Veillard * DOC_DISABLE : we ignore missing doc for the xmlThrDef functions,
5701e90661bb817402f85103c3b9d3ce6ebab570f38Daniel Veillard *               those are really internal work
5711e90661bb817402f85103c3b9d3ce6ebab570f38Daniel Veillard */
572781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardvoid
573781ac8b19bfc10635a8bb83158f874116fd7559eDaniel VeillardxmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) {
574781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
575781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlGenericErrorContextThrDef = ctx;
576781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    if (handler != NULL)
577781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard	xmlGenericErrorThrDef = handler;
578781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    else
579781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard	xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
580781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
5815335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard}
5825335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard
583659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillardvoid
584659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel VeillardxmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) {
585659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard    xmlMutexLock(xmlThrDefMutex);
5861de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam    xmlStructuredErrorContextThrDef = ctx;
587659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard    xmlStructuredErrorThrDef = handler;
588659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
589659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard}
590659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard
5915335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard/**
5927b4b2f9d8fc712c49beaf75985161a130c77d13aDaniel Veillard * xmlRegisterNodeDefault:
5935335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard * @func: function pointer to the new RegisterNodeFunc
5945335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard *
5951703c5fc238e76532f654747259a20a29c769942Daniel Veillard * Registers a callback for node creation
5961703c5fc238e76532f654747259a20a29c769942Daniel Veillard *
5971703c5fc238e76532f654747259a20a29c769942Daniel Veillard * Returns the old value of the registration function
5985335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard */
5995335dc52afb3400b469264d758be01af84e4cfb0Daniel VeillardxmlRegisterNodeFunc
6005335dc52afb3400b469264d758be01af84e4cfb0Daniel VeillardxmlRegisterNodeDefault(xmlRegisterNodeFunc func)
6015335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard{
6025335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue;
603f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard
604a880b124750afcce94ea3d947125d0f8a034e766Daniel Veillard    __xmlRegisterCallbacks = 1;
6055335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    xmlRegisterNodeDefaultValue = func;
6065335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    return(old);
607b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
608b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
609781ac8b19bfc10635a8bb83158f874116fd7559eDaniel VeillardxmlRegisterNodeFunc
610781ac8b19bfc10635a8bb83158f874116fd7559eDaniel VeillardxmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func)
611781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard{
612781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlRegisterNodeFunc old;
613f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard
614781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
615781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    old = xmlRegisterNodeDefaultValueThrDef;
616f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard
617781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    __xmlRegisterCallbacks = 1;
618781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlRegisterNodeDefaultValueThrDef = func;
619781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
620781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
621781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return(old);
622781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
623781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
6245335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard/**
6257b4b2f9d8fc712c49beaf75985161a130c77d13aDaniel Veillard * xmlDeregisterNodeDefault:
6265335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard * @func: function pointer to the new DeregisterNodeFunc
6275335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard *
6281703c5fc238e76532f654747259a20a29c769942Daniel Veillard * Registers a callback for node destruction
6291703c5fc238e76532f654747259a20a29c769942Daniel Veillard *
6307b4b2f9d8fc712c49beaf75985161a130c77d13aDaniel Veillard * Returns the previous value of the deregistration function
6315335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard */
6325335dc52afb3400b469264d758be01af84e4cfb0Daniel VeillardxmlDeregisterNodeFunc
6335335dc52afb3400b469264d758be01af84e4cfb0Daniel VeillardxmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)
6345335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard{
6355335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue;
636f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard
637a880b124750afcce94ea3d947125d0f8a034e766Daniel Veillard    __xmlRegisterCallbacks = 1;
6385335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    xmlDeregisterNodeDefaultValue = func;
6395335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    return(old);
6405335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard}
6415335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard
642781ac8b19bfc10635a8bb83158f874116fd7559eDaniel VeillardxmlDeregisterNodeFunc
643781ac8b19bfc10635a8bb83158f874116fd7559eDaniel VeillardxmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)
644781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard{
645781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlDeregisterNodeFunc old;
646781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
647781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
648781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    old = xmlDeregisterNodeDefaultValueThrDef;
649f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard
650781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    __xmlRegisterCallbacks = 1;
651781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlDeregisterNodeDefaultValueThrDef = func;
652781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
653781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
654781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return(old);
655781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
656781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard
6570335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel VeillardxmlParserInputBufferCreateFilenameFunc
6580335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel VeillardxmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func)
6590335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard{
6600335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    xmlParserInputBufferCreateFilenameFunc old;
661f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard
6620335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    xmlMutexLock(xmlThrDefMutex);
6630335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    old = xmlParserInputBufferCreateFilenameValueThrDef;
6641b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard    if (old == NULL) {
6651b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard		old = __xmlParserInputBufferCreateFilename;
6661b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard	}
6671b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard
6680335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    xmlParserInputBufferCreateFilenameValueThrDef = func;
6690335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
6700335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard
6710335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    return(old);
6720335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard}
6730335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard
6740335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel VeillardxmlOutputBufferCreateFilenameFunc
6750335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel VeillardxmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func)
6760335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard{
6770335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    xmlOutputBufferCreateFilenameFunc old;
678f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard
6790335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    xmlMutexLock(xmlThrDefMutex);
6800335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    old = xmlOutputBufferCreateFilenameValueThrDef;
6811b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard#ifdef LIBXML_OUTPUT_ENABLED
6821b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard    if (old == NULL) {
6831b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard		old = __xmlOutputBufferCreateFilename;
6841b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard	}
6851b243b4fc9638312287fb5b4dd3ea209bf42bf6aDaniel Veillard#endif
6860335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    xmlOutputBufferCreateFilenameValueThrDef = func;
6870335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
6880335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard
6890335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    return(old);
6900335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard}
6915335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard
692a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard#ifdef LIBXML_DOCB_ENABLED
693b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	docbDefaultSAXHandler
694092643b52d29e6b721c257c4c88efa8259eebfe9Daniel VeillardxmlSAXHandlerV1 *
695b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__docbDefaultSAXHandler(void) {
696b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
697b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&docbDefaultSAXHandler);
698b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
699d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->docbDefaultSAXHandler);
700b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
701a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard#endif
702b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
703a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard#ifdef LIBXML_HTML_ENABLED
704b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	htmlDefaultSAXHandler
705092643b52d29e6b721c257c4c88efa8259eebfe9Daniel VeillardxmlSAXHandlerV1 *
706b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__htmlDefaultSAXHandler(void) {
707b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
708b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&htmlDefaultSAXHandler);
709b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
710d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->htmlDefaultSAXHandler);
711b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
712a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard#endif
713a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard
7142b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard#undef xmlLastError
7152b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel VeillardxmlError *
7162b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard__xmlLastError(void) {
7172b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard    if (IS_MAIN_THREAD)
7182b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard	return (&xmlLastError);
7192b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard    else
7202b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard	return (&xmlGetGlobalState()->xmlLastError);
7212b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard}
7222b8c4a151bb6bf91c10541b0593218bca5b3d5ceDaniel Veillard
723a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard/*
7245ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack * The following memory routines were apparently lost at some point,
7255ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack * and were re-inserted at this point on June 10, 2004.  Hope it's
7265ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack * the right place for them :-)
7275ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack */
7285ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#if defined(LIBXML_THREAD_ALLOC_ENABLED) && defined(LIBXML_THREAD_ENABLED)
7295ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef xmlMalloc
7305ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. BrackxmlMallocFunc *
7315ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack__xmlMalloc(void){
7325ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    if (IS_MAIN_THREAD)
7335ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlMalloc);
7345ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    else
735f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard	return (&xmlGetGlobalState()->xmlMalloc);
7365ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack}
7375ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack
7385ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef xmlMallocAtomic
7395ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. BrackxmlMallocFunc *
7405ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack__xmlMallocAtomic(void){
7415ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    if (IS_MAIN_THREAD)
7425ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlMallocAtomic);
7435ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    else
7445ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlGetGlobalState()->xmlMallocAtomic);
7455ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack}
7465ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack
7475ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef xmlRealloc
7485ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. BrackxmlReallocFunc *
7495ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack__xmlRealloc(void){
7505ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    if (IS_MAIN_THREAD)
7515ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlRealloc);
7525ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    else
7535ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlGetGlobalState()->xmlRealloc);
7545ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack}
7555ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack
7565ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#undef xmlFree
7575ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. BrackxmlFreeFunc *
7585ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack__xmlFree(void){
7595ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    if (IS_MAIN_THREAD)
7605ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlFree);
7615ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    else
7625ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlGetGlobalState()->xmlFree);
7635ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack}
7645ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack
7655ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. BrackxmlStrdupFunc *
7665ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack__xmlMemStrdup(void){
7675ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    if (IS_MAIN_THREAD)
7685ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlMemStrdup);
7695ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack    else
7705ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack        return (&xmlGetGlobalState()->xmlMemStrdup);
7715ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack}
7725ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack
7735ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack#endif
7745ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack
7755ab479b0e4e1ea8dd2be3f9fe4e5c4eac8fa7773William M. Brack/*
776a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard * Everything starting from the line below is
777a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard * Automatically generated by build_glob.py.
778a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard * Do not modify the previous line.
779a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard */
780a4617b8aba43d2ce8e033cb04de599b4273cb94bDaniel Veillard
781b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
782b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	oldXMLWDcompatibility
783b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
784b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__oldXMLWDcompatibility(void) {
785b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
786b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&oldXMLWDcompatibility);
787b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
788d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->oldXMLWDcompatibility);
789b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
790b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
791b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlBufferAllocScheme
792b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlBufferAllocationScheme *
793b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlBufferAllocScheme(void) {
794b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
795b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlBufferAllocScheme);
796b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
797d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlBufferAllocScheme);
798b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
799781ac8b19bfc10635a8bb83158f874116fd7559eDaniel VeillardxmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v) {
800781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlBufferAllocationScheme ret;
801781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
802781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlBufferAllocSchemeThrDef;
803781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlBufferAllocSchemeThrDef = v;
804781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
805781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
806781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
807b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
808b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlDefaultBufferSize
809b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
810b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlDefaultBufferSize(void) {
811b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
812b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlDefaultBufferSize);
813b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
814d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlDefaultBufferSize);
815b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
816781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefDefaultBufferSize(int v) {
817781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
818781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
819781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlDefaultBufferSizeThrDef;
820781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlDefaultBufferSizeThrDef = v;
821781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
822781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
823781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
824b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
8258127390f0332ddf545fe59e406996deaedfee964Daniel Veillard#ifdef LIBXML_SAX1_ENABLED
826b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlDefaultSAXHandler
827092643b52d29e6b721c257c4c88efa8259eebfe9Daniel VeillardxmlSAXHandlerV1 *
828b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlDefaultSAXHandler(void) {
829b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
830b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlDefaultSAXHandler);
831b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
832d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlDefaultSAXHandler);
833b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
8348127390f0332ddf545fe59e406996deaedfee964Daniel Veillard#endif /* LIBXML_SAX1_ENABLED */
835b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
836b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlDefaultSAXLocator
837b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlSAXLocator *
838b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlDefaultSAXLocator(void) {
839b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
840b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlDefaultSAXLocator);
841b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
842d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlDefaultSAXLocator);
843b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
844b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
845b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlDoValidityCheckingDefaultValue
846b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
847b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlDoValidityCheckingDefaultValue(void) {
848b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
849b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlDoValidityCheckingDefaultValue);
850b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
851d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlDoValidityCheckingDefaultValue);
852b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
853781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefDoValidityCheckingDefaultValue(int v) {
854781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
855781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
856781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlDoValidityCheckingDefaultValueThrDef;
857781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlDoValidityCheckingDefaultValueThrDef = v;
858781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
859781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
860781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
861b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
862b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlGenericError
863b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel VeillardxmlGenericErrorFunc *
864b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlGenericError(void) {
865b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
866b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlGenericError);
867b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
868d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlGenericError);
869b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
870b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
871659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard#undef	xmlStructuredError
872659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel VeillardxmlStructuredErrorFunc *
873659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard__xmlStructuredError(void) {
874659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard    if (IS_MAIN_THREAD)
875659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard	return (&xmlStructuredError);
876659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard    else
877659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard	return (&xmlGetGlobalState()->xmlStructuredError);
878659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard}
879659e71ec2476d24bfca0d6432a69ef9a49a62be4Daniel Veillard
880b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlGenericErrorContext
881b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardvoid * *
882b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlGenericErrorContext(void) {
883b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
884b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlGenericErrorContext);
885b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
886d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlGenericErrorContext);
887b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
888b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
8891de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam#undef	xmlStructuredErrorContext
8901de382eb061b70b07040b3932c4b6082eb3ded79Wang Lamvoid * *
8911de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam__xmlStructuredErrorContext(void) {
8921de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam    if (IS_MAIN_THREAD)
8931de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam	return (&xmlStructuredErrorContext);
8941de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam    else
8951de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam	return (&xmlGetGlobalState()->xmlStructuredErrorContext);
8961de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam}
8971de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam
898b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlGetWarningsDefaultValue
899b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
900b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlGetWarningsDefaultValue(void) {
901b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
902b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlGetWarningsDefaultValue);
903b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
904d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlGetWarningsDefaultValue);
905b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
906781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefGetWarningsDefaultValue(int v) {
907781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
908781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
909781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlGetWarningsDefaultValueThrDef;
910781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlGetWarningsDefaultValueThrDef = v;
911781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
912781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
913781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
914b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
915b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlIndentTreeOutput
916b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
917b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlIndentTreeOutput(void) {
918b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
919b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlIndentTreeOutput);
920b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
921d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlIndentTreeOutput);
922b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
923781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefIndentTreeOutput(int v) {
924781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
925781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
926781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlIndentTreeOutputThrDef;
927781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlIndentTreeOutputThrDef = v;
928781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
929781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
930781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
931b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
9321de382eb061b70b07040b3932c4b6082eb3ded79Wang Lam#undef	xmlTreeIndentString
93323002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Saninconst char * *
93423002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin__xmlTreeIndentString(void) {
93523002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin    if (IS_MAIN_THREAD)
93623002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin	return (&xmlTreeIndentString);
93723002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin    else
93823002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin	return (&xmlGetGlobalState()->xmlTreeIndentString);
93923002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin}
940781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardconst char * xmlThrDefTreeIndentString(const char * v) {
941781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    const char * ret;
942781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
943781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlTreeIndentStringThrDef;
944781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlTreeIndentStringThrDef = v;
945781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
946781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
947781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
94823002568a6f407dfeb8ced515af28bdd6f74a4f1Aleksey Sanin
949b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlKeepBlanksDefaultValue
950b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
951b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlKeepBlanksDefaultValue(void) {
952b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
953b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlKeepBlanksDefaultValue);
954b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
955d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlKeepBlanksDefaultValue);
956b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
957781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefKeepBlanksDefaultValue(int v) {
958781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
959781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
960781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlKeepBlanksDefaultValueThrDef;
961781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlKeepBlanksDefaultValueThrDef = v;
962781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
963781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
964781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
965b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
966b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlLineNumbersDefaultValue
967b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
968b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlLineNumbersDefaultValue(void) {
969b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
970b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlLineNumbersDefaultValue);
971b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
972d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlLineNumbersDefaultValue);
973b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
974781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefLineNumbersDefaultValue(int v) {
975781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
976781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
977781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlLineNumbersDefaultValueThrDef;
978781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlLineNumbersDefaultValueThrDef = v;
979781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
980781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
981781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
982b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
983b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlLoadExtDtdDefaultValue
984b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
985b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlLoadExtDtdDefaultValue(void) {
986b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
987b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlLoadExtDtdDefaultValue);
988b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
989d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlLoadExtDtdDefaultValue);
990b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
991781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefLoadExtDtdDefaultValue(int v) {
992781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
993781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
994781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlLoadExtDtdDefaultValueThrDef;
995781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlLoadExtDtdDefaultValueThrDef = v;
996781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
997781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
998781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
999b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
1000b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlParserDebugEntities
1001b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
1002b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlParserDebugEntities(void) {
1003b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
1004b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlParserDebugEntities);
1005b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
1006d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlParserDebugEntities);
1007b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
1008781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefParserDebugEntities(int v) {
1009781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
1010781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
1011781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlParserDebugEntitiesThrDef;
1012781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlParserDebugEntitiesThrDef = v;
1013781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
1014781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
1015781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
1016b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
1017b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlParserVersion
1018b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardconst char * *
1019b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlParserVersion(void) {
1020b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
1021b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlParserVersion);
1022b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
1023d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlParserVersion);
1024b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
1025b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
1026b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlPedanticParserDefaultValue
1027b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
1028b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlPedanticParserDefaultValue(void) {
1029b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
1030b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlPedanticParserDefaultValue);
1031b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
1032d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlPedanticParserDefaultValue);
1033b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
1034781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefPedanticParserDefaultValue(int v) {
1035781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
1036781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
1037781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlPedanticParserDefaultValueThrDef;
1038781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlPedanticParserDefaultValueThrDef = v;
1039781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
1040781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
1041781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
1042b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
1043b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlSaveNoEmptyTags
1044b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
1045b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlSaveNoEmptyTags(void) {
1046b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
1047b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlSaveNoEmptyTags);
1048b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
1049d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlSaveNoEmptyTags);
1050b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
1051781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefSaveNoEmptyTags(int v) {
1052781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
1053781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
1054781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlSaveNoEmptyTagsThrDef;
1055781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlSaveNoEmptyTagsThrDef = v;
1056781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
1057781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
1058781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
1059b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard
1060b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard#undef	xmlSubstituteEntitiesDefaultValue
1061b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillardint *
1062b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard__xmlSubstituteEntitiesDefaultValue(void) {
1063b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    if (IS_MAIN_THREAD)
1064b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard	return (&xmlSubstituteEntitiesDefaultValue);
1065b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard    else
1066d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard	return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultValue);
1067b847864fc2f7151c81e57d02ca3b523dc5d8cf72Daniel Veillard}
1068781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillardint xmlThrDefSubstituteEntitiesDefaultValue(int v) {
1069781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    int ret;
1070781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexLock(xmlThrDefMutex);
1071781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    ret = xmlSubstituteEntitiesDefaultValueThrDef;
1072781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlSubstituteEntitiesDefaultValueThrDef = v;
1073781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    xmlMutexUnlock(xmlThrDefMutex);
1074781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard    return ret;
1075781ac8b19bfc10635a8bb83158f874116fd7559eDaniel Veillard}
10765335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard
10775335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard#undef	xmlRegisterNodeDefaultValue
10785335dc52afb3400b469264d758be01af84e4cfb0Daniel VeillardxmlRegisterNodeFunc *
10795335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard__xmlRegisterNodeDefaultValue(void) {
10805335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    if (IS_MAIN_THREAD)
10815335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard	return (&xmlRegisterNodeDefaultValue);
10825335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    else
10835335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard	return (&xmlGetGlobalState()->xmlRegisterNodeDefaultValue);
10845335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard}
10855335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard
10865335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard#undef	xmlDeregisterNodeDefaultValue
10875335dc52afb3400b469264d758be01af84e4cfb0Daniel VeillardxmlDeregisterNodeFunc *
10885335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard__xmlDeregisterNodeDefaultValue(void) {
10895335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    if (IS_MAIN_THREAD)
10905335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard	return (&xmlDeregisterNodeDefaultValue);
10915335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard    else
10925335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard	return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
10935335dc52afb3400b469264d758be01af84e4cfb0Daniel Veillard}
10940335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard
10950335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard#undef	xmlParserInputBufferCreateFilenameValue
10960335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel VeillardxmlParserInputBufferCreateFilenameFunc *
10970335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard__xmlParserInputBufferCreateFilenameValue(void) {
10980335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    if (IS_MAIN_THREAD)
10990335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard	return (&xmlParserInputBufferCreateFilenameValue);
11000335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    else
11010335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard	return (&xmlGetGlobalState()->xmlParserInputBufferCreateFilenameValue);
11020335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard}
11030335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard
11040335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard#undef	xmlOutputBufferCreateFilenameValue
11050335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel VeillardxmlOutputBufferCreateFilenameFunc *
11060335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard__xmlOutputBufferCreateFilenameValue(void) {
11070335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    if (IS_MAIN_THREAD)
11080335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard	return (&xmlOutputBufferCreateFilenameValue);
11090335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard    else
11100335a846ad62ce5b2394ea9c429c271391bd9ca7Daniel Veillard	return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
1111803812b9fe6946e0c59f6e275e03c1b8632a6eddWilliam M. Brack}
11125d4644ef6e38479a648615eca758c5e962a141d5Daniel Veillard
11135d4644ef6e38479a648615eca758c5e962a141d5Daniel Veillard#define bottom_globals
11145d4644ef6e38479a648615eca758c5e962a141d5Daniel Veillard#include "elfgcchack.h"
1115