Blame globals.c

Packit 423ecb
/*
Packit 423ecb
 * globals.c: definition and handling of the set of global variables
Packit 423ecb
 *            of the library
Packit 423ecb
 *
Packit 423ecb
 * The bottom of this file is automatically generated by build_glob.py
Packit 423ecb
 * based on the description file global.data
Packit 423ecb
 *
Packit 423ecb
 * See Copyright for the status of this software.
Packit 423ecb
 *
Packit 423ecb
 * Gary Pennington <Gary.Pennington@uk.sun.com>
Packit 423ecb
 * daniel@veillard.com
Packit 423ecb
 */
Packit 423ecb
Packit 423ecb
#define IN_LIBXML
Packit 423ecb
#include "libxml.h"
Packit 423ecb
Packit 423ecb
#ifdef HAVE_STDLIB_H
Packit 423ecb
#include <stdlib.h>
Packit 423ecb
#endif
Packit 423ecb
#include <string.h>
Packit 423ecb
Packit 423ecb
#include <libxml/globals.h>
Packit 423ecb
#include <libxml/xmlmemory.h>
Packit 423ecb
#include <libxml/threads.h>
Packit 423ecb
Packit 423ecb
/* #define DEBUG_GLOBALS */
Packit 423ecb
Packit 423ecb
/*
Packit 423ecb
 * Helpful Macro
Packit 423ecb
 */
Packit 423ecb
#ifdef LIBXML_THREAD_ENABLED
Packit 423ecb
#define IS_MAIN_THREAD (xmlIsMainThread())
Packit 423ecb
#else
Packit 423ecb
#define IS_MAIN_THREAD 1
Packit 423ecb
#endif
Packit 423ecb
Packit 423ecb
/*
Packit 423ecb
 * Mutex to protect "ForNewThreads" variables
Packit 423ecb
 */
Packit 423ecb
static xmlMutexPtr xmlThrDefMutex = NULL;
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlInitGlobals:
Packit 423ecb
 *
Packit 423ecb
 * Additional initialisation for multi-threading
Packit 423ecb
 */
Packit 423ecb
void xmlInitGlobals(void)
Packit 423ecb
{
Packit 423ecb
    if (xmlThrDefMutex == NULL)
Packit 423ecb
        xmlThrDefMutex = xmlNewMutex();
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlCleanupGlobals:
Packit 423ecb
 *
Packit 423ecb
 * Additional cleanup for multi-threading
Packit 423ecb
 */
Packit 423ecb
void xmlCleanupGlobals(void)
Packit 423ecb
{
Packit 423ecb
    if (xmlThrDefMutex != NULL) {
Packit 423ecb
	xmlFreeMutex(xmlThrDefMutex);
Packit 423ecb
	xmlThrDefMutex = NULL;
Packit 423ecb
    }
Packit 423ecb
    __xmlGlobalInitMutexDestroy();
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
/************************************************************************
Packit 423ecb
 *									*
Packit 423ecb
 *	All the user accessible global variables of the library		*
Packit 423ecb
 *									*
Packit 423ecb
 ************************************************************************/
Packit 423ecb
Packit 423ecb
/*
Packit 423ecb
 * Memory allocation routines
Packit 423ecb
 */
Packit 423ecb
#undef	xmlFree
Packit 423ecb
#undef	xmlMalloc
Packit 423ecb
#undef	xmlMallocAtomic
Packit 423ecb
#undef	xmlMemStrdup
Packit 423ecb
#undef	xmlRealloc
Packit 423ecb
Packit 423ecb
#if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
Packit 423ecb
xmlFreeFunc xmlFree = (xmlFreeFunc) xmlMemFree;
Packit 423ecb
xmlMallocFunc xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
Packit 423ecb
xmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
Packit 423ecb
xmlReallocFunc xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
Packit 423ecb
xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
Packit 423ecb
#else
Packit 423ecb
/**
Packit 423ecb
 * xmlFree:
Packit 423ecb
 * @mem: an already allocated block of memory
Packit 423ecb
 *
Packit 423ecb
 * The variable holding the libxml free() implementation
Packit 423ecb
 */
Packit 423ecb
xmlFreeFunc xmlFree = (xmlFreeFunc) free;
Packit 423ecb
/**
Packit 423ecb
 * xmlMalloc:
Packit 423ecb
 * @size:  the size requested in bytes
Packit 423ecb
 *
Packit 423ecb
 * The variable holding the libxml malloc() implementation
Packit 423ecb
 *
Packit 423ecb
 * Returns a pointer to the newly allocated block or NULL in case of error
Packit 423ecb
 */
Packit 423ecb
xmlMallocFunc xmlMalloc = (xmlMallocFunc) malloc;
Packit 423ecb
/**
Packit 423ecb
 * xmlMallocAtomic:
Packit 423ecb
 * @size:  the size requested in bytes
Packit 423ecb
 *
Packit 423ecb
 * The variable holding the libxml malloc() implementation for atomic
Packit 423ecb
 * data (i.e. blocks not containings pointers), useful when using a
Packit 423ecb
 * garbage collecting allocator.
Packit 423ecb
 *
Packit 423ecb
 * Returns a pointer to the newly allocated block or NULL in case of error
Packit 423ecb
 */
Packit 423ecb
xmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) malloc;
Packit 423ecb
/**
Packit 423ecb
 * xmlRealloc:
Packit 423ecb
 * @mem: an already allocated block of memory
Packit 423ecb
 * @size:  the new size requested in bytes
Packit 423ecb
 *
Packit 423ecb
 * The variable holding the libxml realloc() implementation
Packit 423ecb
 *
Packit 423ecb
 * Returns a pointer to the newly reallocated block or NULL in case of error
Packit 423ecb
 */
Packit 423ecb
xmlReallocFunc xmlRealloc = (xmlReallocFunc) realloc;
Packit 423ecb
/**
Packit 423ecb
 * xmlMemStrdup:
Packit 423ecb
 * @str: a zero terminated string
Packit 423ecb
 *
Packit 423ecb
 * The variable holding the libxml strdup() implementation
Packit 423ecb
 *
Packit 423ecb
 * Returns the copy of the string or NULL in case of error
Packit 423ecb
 */
Packit 423ecb
xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
Packit 423ecb
#endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */
Packit 423ecb
Packit 423ecb
#include <libxml/threads.h>
Packit 423ecb
#include <libxml/globals.h>
Packit 423ecb
#include <libxml/SAX.h>
Packit 423ecb
Packit 423ecb
#undef	docbDefaultSAXHandler
Packit 423ecb
#undef	htmlDefaultSAXHandler
Packit 423ecb
#undef	oldXMLWDcompatibility
Packit 423ecb
#undef	xmlBufferAllocScheme
Packit 423ecb
#undef	xmlDefaultBufferSize
Packit 423ecb
#undef	xmlDefaultSAXHandler
Packit 423ecb
#undef	xmlDefaultSAXLocator
Packit 423ecb
#undef	xmlDoValidityCheckingDefaultValue
Packit 423ecb
#undef	xmlGenericError
Packit 423ecb
#undef	xmlStructuredError
Packit 423ecb
#undef	xmlGenericErrorContext
Packit 423ecb
#undef	xmlStructuredErrorContext
Packit 423ecb
#undef	xmlGetWarningsDefaultValue
Packit 423ecb
#undef	xmlIndentTreeOutput
Packit 423ecb
#undef  xmlTreeIndentString
Packit 423ecb
#undef	xmlKeepBlanksDefaultValue
Packit 423ecb
#undef	xmlLineNumbersDefaultValue
Packit 423ecb
#undef	xmlLoadExtDtdDefaultValue
Packit 423ecb
#undef	xmlParserDebugEntities
Packit 423ecb
#undef	xmlParserVersion
Packit 423ecb
#undef	xmlPedanticParserDefaultValue
Packit 423ecb
#undef	xmlSaveNoEmptyTags
Packit 423ecb
#undef	xmlSubstituteEntitiesDefaultValue
Packit 423ecb
#undef	xmlRegisterNodeDefaultValue
Packit 423ecb
#undef	xmlDeregisterNodeDefaultValue
Packit 423ecb
#undef	xmlLastError
Packit 423ecb
Packit 423ecb
#undef  xmlParserInputBufferCreateFilenameValue
Packit 423ecb
#undef  xmlOutputBufferCreateFilenameValue
Packit 423ecb
/**
Packit 423ecb
 * xmlParserVersion:
Packit 423ecb
 *
Packit 423ecb
 * Constant string describing the internal version of the library
Packit 423ecb
 */
Packit 423ecb
const char *xmlParserVersion = LIBXML_VERSION_STRING LIBXML_VERSION_EXTRA;
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlBufferAllocScheme:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, default allocation policy for buffers, default is
Packit 423ecb
 * XML_BUFFER_ALLOC_EXACT
Packit 423ecb
 */
Packit 423ecb
xmlBufferAllocationScheme xmlBufferAllocScheme = XML_BUFFER_ALLOC_EXACT;
Packit 423ecb
static xmlBufferAllocationScheme xmlBufferAllocSchemeThrDef = XML_BUFFER_ALLOC_EXACT;
Packit 423ecb
/**
Packit 423ecb
 * xmlDefaultBufferSize:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, default buffer size. Default value is BASE_BUFFER_SIZE
Packit 423ecb
 */
Packit 423ecb
int xmlDefaultBufferSize = BASE_BUFFER_SIZE;
Packit 423ecb
static int xmlDefaultBufferSizeThrDef = BASE_BUFFER_SIZE;
Packit 423ecb
Packit 423ecb
/*
Packit 423ecb
 * Parser defaults
Packit 423ecb
 */
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * oldXMLWDcompatibility:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, DEPRECATED.
Packit 423ecb
 */
Packit 423ecb
int oldXMLWDcompatibility = 0; /* DEPRECATED */
Packit 423ecb
/**
Packit 423ecb
 * xmlParserDebugEntities:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, asking the parser to print out debugging informations.
Packit 423ecb
 * while handling entities.
Packit 423ecb
 * Disabled by default
Packit 423ecb
 */
Packit 423ecb
int xmlParserDebugEntities = 0;
Packit 423ecb
static int xmlParserDebugEntitiesThrDef = 0;
Packit 423ecb
/**
Packit 423ecb
 * xmlDoValidityCheckingDefaultValue:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, indicate that the parser should work in validating mode.
Packit 423ecb
 * Disabled by default.
Packit 423ecb
 */
Packit 423ecb
int xmlDoValidityCheckingDefaultValue = 0;
Packit 423ecb
static int xmlDoValidityCheckingDefaultValueThrDef = 0;
Packit 423ecb
/**
Packit 423ecb
 * xmlGetWarningsDefaultValue:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, indicate that the parser should provide warnings.
Packit 423ecb
 * Activated by default.
Packit 423ecb
 */
Packit 423ecb
int xmlGetWarningsDefaultValue = 1;
Packit 423ecb
static int xmlGetWarningsDefaultValueThrDef = 1;
Packit 423ecb
/**
Packit 423ecb
 * xmlLoadExtDtdDefaultValue:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, indicate that the parser should load DTD while not
Packit 423ecb
 * validating.
Packit 423ecb
 * Disabled by default.
Packit 423ecb
 */
Packit 423ecb
int xmlLoadExtDtdDefaultValue = 0;
Packit 423ecb
static int xmlLoadExtDtdDefaultValueThrDef = 0;
Packit 423ecb
/**
Packit 423ecb
 * xmlPedanticParserDefaultValue:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, indicate that the parser be pedantic
Packit 423ecb
 * Disabled by default.
Packit 423ecb
 */
Packit 423ecb
int xmlPedanticParserDefaultValue = 0;
Packit 423ecb
static int xmlPedanticParserDefaultValueThrDef = 0;
Packit 423ecb
/**
Packit 423ecb
 * xmlLineNumbersDefaultValue:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, indicate that the parser should store the line number
Packit 423ecb
 * in the content field of elements in the DOM tree.
Packit 423ecb
 * Disabled by default since this may not be safe for old classes of
Packit 423ecb
 * applicaton.
Packit 423ecb
 */
Packit 423ecb
int xmlLineNumbersDefaultValue = 0;
Packit 423ecb
static int xmlLineNumbersDefaultValueThrDef = 0;
Packit 423ecb
/**
Packit 423ecb
 * xmlKeepBlanksDefaultValue:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, indicate that the parser should keep all blanks
Packit 423ecb
 * nodes found in the content
Packit 423ecb
 * Activated by default, this is actually needed to have the parser
Packit 423ecb
 * conformant to the XML Recommendation, however the option is kept
Packit 423ecb
 * for some applications since this was libxml1 default behaviour.
Packit 423ecb
 */
Packit 423ecb
int xmlKeepBlanksDefaultValue = 1;
Packit 423ecb
static int xmlKeepBlanksDefaultValueThrDef = 1;
Packit 423ecb
/**
Packit 423ecb
 * xmlSubstituteEntitiesDefaultValue:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, indicate that the parser should not generate entity
Packit 423ecb
 * references but replace them with the actual content of the entity
Packit 423ecb
 * Disabled by default, this should be activated when using XPath since
Packit 423ecb
 * the XPath data model requires entities replacement and the XPath
Packit 423ecb
 * engine does not handle entities references transparently.
Packit 423ecb
 */
Packit 423ecb
int xmlSubstituteEntitiesDefaultValue = 0;
Packit 423ecb
static int xmlSubstituteEntitiesDefaultValueThrDef = 0;
Packit 423ecb
Packit 423ecb
xmlRegisterNodeFunc xmlRegisterNodeDefaultValue = NULL;
Packit 423ecb
static xmlRegisterNodeFunc xmlRegisterNodeDefaultValueThrDef = NULL;
Packit 423ecb
xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue = NULL;
Packit 423ecb
static xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValueThrDef = NULL;
Packit 423ecb
Packit 423ecb
xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue = NULL;
Packit 423ecb
static xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValueThrDef = NULL;
Packit 423ecb
Packit 423ecb
xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue = NULL;
Packit 423ecb
static xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValueThrDef = NULL;
Packit 423ecb
Packit 423ecb
/*
Packit 423ecb
 * Error handling
Packit 423ecb
 */
Packit 423ecb
Packit 423ecb
/* xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc; */
Packit 423ecb
/* Must initialize xmlGenericError in xmlInitParser */
Packit 423ecb
void XMLCDECL xmlGenericErrorDefaultFunc	(void *ctx ATTRIBUTE_UNUSED,
Packit 423ecb
				 const char *msg,
Packit 423ecb
				 ...);
Packit 423ecb
/**
Packit 423ecb
 * xmlGenericError:
Packit 423ecb
 *
Packit 423ecb
 * Global setting: function used for generic error callbacks
Packit 423ecb
 */
Packit 423ecb
xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc;
Packit 423ecb
static xmlGenericErrorFunc xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
Packit 423ecb
/**
Packit 423ecb
 * xmlStructuredError:
Packit 423ecb
 *
Packit 423ecb
 * Global setting: function used for structured error callbacks
Packit 423ecb
 */
Packit 423ecb
xmlStructuredErrorFunc xmlStructuredError = NULL;
Packit 423ecb
static xmlStructuredErrorFunc xmlStructuredErrorThrDef = NULL;
Packit 423ecb
/**
Packit 423ecb
 * xmlGenericErrorContext:
Packit 423ecb
 *
Packit 423ecb
 * Global setting passed to generic error callbacks
Packit 423ecb
 */
Packit 423ecb
void *xmlGenericErrorContext = NULL;
Packit 423ecb
static void *xmlGenericErrorContextThrDef = NULL;
Packit 423ecb
/**
Packit 423ecb
 * xmlStructuredErrorContext:
Packit 423ecb
 *
Packit 423ecb
 * Global setting passed to structured error callbacks
Packit 423ecb
 */
Packit 423ecb
void *xmlStructuredErrorContext = NULL;
Packit 423ecb
static void *xmlStructuredErrorContextThrDef = NULL;
Packit 423ecb
xmlError xmlLastError;
Packit 423ecb
Packit 423ecb
/*
Packit 423ecb
 * output defaults
Packit 423ecb
 */
Packit 423ecb
/**
Packit 423ecb
 * xmlIndentTreeOutput:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, asking the serializer to indent the output tree by default
Packit 423ecb
 * Enabled by default
Packit 423ecb
 */
Packit 423ecb
int xmlIndentTreeOutput = 1;
Packit 423ecb
static int xmlIndentTreeOutputThrDef = 1;
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlTreeIndentString:
Packit 423ecb
 *
Packit 423ecb
 * The string used to do one-level indent. By default is equal to "  " (two spaces)
Packit 423ecb
 */
Packit 423ecb
const char *xmlTreeIndentString = "  ";
Packit 423ecb
static const char *xmlTreeIndentStringThrDef = "  ";
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlSaveNoEmptyTags:
Packit 423ecb
 *
Packit 423ecb
 * Global setting, asking the serializer to not output empty tags
Packit 423ecb
 * as <empty/> but <empty></empty>. those two forms are undistinguishable
Packit 423ecb
 * once parsed.
Packit 423ecb
 * Disabled by default
Packit 423ecb
 */
Packit 423ecb
int xmlSaveNoEmptyTags = 0;
Packit 423ecb
static int xmlSaveNoEmptyTagsThrDef = 0;
Packit 423ecb
Packit 423ecb
#ifdef LIBXML_SAX1_ENABLED
Packit 423ecb
/**
Packit 423ecb
 * xmlDefaultSAXHandler:
Packit 423ecb
 *
Packit 423ecb
 * Default SAX version1 handler for XML, builds the DOM tree
Packit 423ecb
 */
Packit 423ecb
xmlSAXHandlerV1 xmlDefaultSAXHandler = {
Packit 423ecb
    xmlSAX2InternalSubset,
Packit 423ecb
    xmlSAX2IsStandalone,
Packit 423ecb
    xmlSAX2HasInternalSubset,
Packit 423ecb
    xmlSAX2HasExternalSubset,
Packit 423ecb
    xmlSAX2ResolveEntity,
Packit 423ecb
    xmlSAX2GetEntity,
Packit 423ecb
    xmlSAX2EntityDecl,
Packit 423ecb
    xmlSAX2NotationDecl,
Packit 423ecb
    xmlSAX2AttributeDecl,
Packit 423ecb
    xmlSAX2ElementDecl,
Packit 423ecb
    xmlSAX2UnparsedEntityDecl,
Packit 423ecb
    xmlSAX2SetDocumentLocator,
Packit 423ecb
    xmlSAX2StartDocument,
Packit 423ecb
    xmlSAX2EndDocument,
Packit 423ecb
    xmlSAX2StartElement,
Packit 423ecb
    xmlSAX2EndElement,
Packit 423ecb
    xmlSAX2Reference,
Packit 423ecb
    xmlSAX2Characters,
Packit 423ecb
    xmlSAX2Characters,
Packit 423ecb
    xmlSAX2ProcessingInstruction,
Packit 423ecb
    xmlSAX2Comment,
Packit 423ecb
    xmlParserWarning,
Packit 423ecb
    xmlParserError,
Packit 423ecb
    xmlParserError,
Packit 423ecb
    xmlSAX2GetParameterEntity,
Packit 423ecb
    xmlSAX2CDataBlock,
Packit 423ecb
    xmlSAX2ExternalSubset,
Packit 423ecb
    0,
Packit 423ecb
};
Packit 423ecb
#endif /* LIBXML_SAX1_ENABLED */
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlDefaultSAXLocator:
Packit 423ecb
 *
Packit 423ecb
 * The default SAX Locator
Packit 423ecb
 * { getPublicId, getSystemId, getLineNumber, getColumnNumber}
Packit 423ecb
 */
Packit 423ecb
xmlSAXLocator xmlDefaultSAXLocator = {
Packit 423ecb
    xmlSAX2GetPublicId,
Packit 423ecb
    xmlSAX2GetSystemId,
Packit 423ecb
    xmlSAX2GetLineNumber,
Packit 423ecb
    xmlSAX2GetColumnNumber
Packit 423ecb
};
Packit 423ecb
Packit 423ecb
#ifdef LIBXML_HTML_ENABLED
Packit 423ecb
/**
Packit 423ecb
 * htmlDefaultSAXHandler:
Packit 423ecb
 *
Packit 423ecb
 * Default old SAX v1 handler for HTML, builds the DOM tree
Packit 423ecb
 */
Packit 423ecb
xmlSAXHandlerV1 htmlDefaultSAXHandler = {
Packit 423ecb
    xmlSAX2InternalSubset,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    xmlSAX2GetEntity,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    xmlSAX2SetDocumentLocator,
Packit 423ecb
    xmlSAX2StartDocument,
Packit 423ecb
    xmlSAX2EndDocument,
Packit 423ecb
    xmlSAX2StartElement,
Packit 423ecb
    xmlSAX2EndElement,
Packit 423ecb
    NULL,
Packit 423ecb
    xmlSAX2Characters,
Packit 423ecb
    xmlSAX2IgnorableWhitespace,
Packit 423ecb
    xmlSAX2ProcessingInstruction,
Packit 423ecb
    xmlSAX2Comment,
Packit 423ecb
    xmlParserWarning,
Packit 423ecb
    xmlParserError,
Packit 423ecb
    xmlParserError,
Packit 423ecb
    xmlSAX2GetParameterEntity,
Packit 423ecb
    xmlSAX2CDataBlock,
Packit 423ecb
    NULL,
Packit 423ecb
    0,
Packit 423ecb
};
Packit 423ecb
#endif /* LIBXML_HTML_ENABLED */
Packit 423ecb
Packit 423ecb
#ifdef LIBXML_DOCB_ENABLED
Packit 423ecb
/**
Packit 423ecb
 * docbDefaultSAXHandler:
Packit 423ecb
 *
Packit 423ecb
 * Default old SAX v1 handler for SGML DocBook, builds the DOM tree
Packit 423ecb
 */
Packit 423ecb
xmlSAXHandlerV1 docbDefaultSAXHandler = {
Packit 423ecb
    xmlSAX2InternalSubset,
Packit 423ecb
    xmlSAX2IsStandalone,
Packit 423ecb
    xmlSAX2HasInternalSubset,
Packit 423ecb
    xmlSAX2HasExternalSubset,
Packit 423ecb
    xmlSAX2ResolveEntity,
Packit 423ecb
    xmlSAX2GetEntity,
Packit 423ecb
    xmlSAX2EntityDecl,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    xmlSAX2SetDocumentLocator,
Packit 423ecb
    xmlSAX2StartDocument,
Packit 423ecb
    xmlSAX2EndDocument,
Packit 423ecb
    xmlSAX2StartElement,
Packit 423ecb
    xmlSAX2EndElement,
Packit 423ecb
    xmlSAX2Reference,
Packit 423ecb
    xmlSAX2Characters,
Packit 423ecb
    xmlSAX2IgnorableWhitespace,
Packit 423ecb
    NULL,
Packit 423ecb
    xmlSAX2Comment,
Packit 423ecb
    xmlParserWarning,
Packit 423ecb
    xmlParserError,
Packit 423ecb
    xmlParserError,
Packit 423ecb
    xmlSAX2GetParameterEntity,
Packit 423ecb
    NULL,
Packit 423ecb
    NULL,
Packit 423ecb
    0,
Packit 423ecb
};
Packit 423ecb
#endif /* LIBXML_DOCB_ENABLED */
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlInitializeGlobalState:
Packit 423ecb
 * @gs: a pointer to a newly allocated global state
Packit 423ecb
 *
Packit 423ecb
 * xmlInitializeGlobalState() initialize a global state with all the
Packit 423ecb
 * default values of the library.
Packit 423ecb
 */
Packit 423ecb
void
Packit 423ecb
xmlInitializeGlobalState(xmlGlobalStatePtr gs)
Packit 423ecb
{
Packit 423ecb
#ifdef DEBUG_GLOBALS
Packit 423ecb
    fprintf(stderr, "Initializing globals at %lu for thread %d\n",
Packit 423ecb
	    (unsigned long) gs, xmlGetThreadId());
Packit 423ecb
#endif
Packit 423ecb
Packit 423ecb
    /*
Packit 423ecb
     * Perform initialization as required by libxml
Packit 423ecb
     */
Packit 423ecb
    if (xmlThrDefMutex == NULL)
Packit 423ecb
        xmlInitGlobals();
Packit 423ecb
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
Packit 423ecb
#if defined(LIBXML_DOCB_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
Packit 423ecb
    initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
Packit 423ecb
#endif
Packit 423ecb
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
Packit 423ecb
    inithtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler);
Packit 423ecb
#endif
Packit 423ecb
Packit 423ecb
    gs->oldXMLWDcompatibility = 0;
Packit 423ecb
    gs->xmlBufferAllocScheme = xmlBufferAllocSchemeThrDef;
Packit 423ecb
    gs->xmlDefaultBufferSize = xmlDefaultBufferSizeThrDef;
Packit 423ecb
#if defined(LIBXML_SAX1_ENABLED) && defined(LIBXML_LEGACY_ENABLED)
Packit 423ecb
    initxmlDefaultSAXHandler(&gs->xmlDefaultSAXHandler, 1);
Packit 423ecb
#endif /* LIBXML_SAX1_ENABLED */
Packit 423ecb
    gs->xmlDefaultSAXLocator.getPublicId = xmlSAX2GetPublicId;
Packit 423ecb
    gs->xmlDefaultSAXLocator.getSystemId = xmlSAX2GetSystemId;
Packit 423ecb
    gs->xmlDefaultSAXLocator.getLineNumber = xmlSAX2GetLineNumber;
Packit 423ecb
    gs->xmlDefaultSAXLocator.getColumnNumber = xmlSAX2GetColumnNumber;
Packit 423ecb
    gs->xmlDoValidityCheckingDefaultValue =
Packit 423ecb
         xmlDoValidityCheckingDefaultValueThrDef;
Packit 423ecb
#if defined(DEBUG_MEMORY_LOCATION) | defined(DEBUG_MEMORY)
Packit 423ecb
    gs->xmlFree = (xmlFreeFunc) xmlMemFree;
Packit 423ecb
    gs->xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
Packit 423ecb
    gs->xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
Packit 423ecb
    gs->xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
Packit 423ecb
    gs->xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
Packit 423ecb
#else
Packit 423ecb
    gs->xmlFree = (xmlFreeFunc) free;
Packit 423ecb
    gs->xmlMalloc = (xmlMallocFunc) malloc;
Packit 423ecb
    gs->xmlMallocAtomic = (xmlMallocFunc) malloc;
Packit 423ecb
    gs->xmlRealloc = (xmlReallocFunc) realloc;
Packit 423ecb
    gs->xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
Packit 423ecb
#endif
Packit 423ecb
    gs->xmlGetWarningsDefaultValue = xmlGetWarningsDefaultValueThrDef;
Packit 423ecb
    gs->xmlIndentTreeOutput = xmlIndentTreeOutputThrDef;
Packit 423ecb
    gs->xmlTreeIndentString = xmlTreeIndentStringThrDef;
Packit 423ecb
    gs->xmlKeepBlanksDefaultValue = xmlKeepBlanksDefaultValueThrDef;
Packit 423ecb
    gs->xmlLineNumbersDefaultValue = xmlLineNumbersDefaultValueThrDef;
Packit 423ecb
    gs->xmlLoadExtDtdDefaultValue = xmlLoadExtDtdDefaultValueThrDef;
Packit 423ecb
    gs->xmlParserDebugEntities = xmlParserDebugEntitiesThrDef;
Packit 423ecb
    gs->xmlParserVersion = LIBXML_VERSION_STRING;
Packit 423ecb
    gs->xmlPedanticParserDefaultValue = xmlPedanticParserDefaultValueThrDef;
Packit 423ecb
    gs->xmlSaveNoEmptyTags = xmlSaveNoEmptyTagsThrDef;
Packit 423ecb
    gs->xmlSubstituteEntitiesDefaultValue =
Packit 423ecb
        xmlSubstituteEntitiesDefaultValueThrDef;
Packit 423ecb
Packit 423ecb
    gs->xmlGenericError = xmlGenericErrorThrDef;
Packit 423ecb
    gs->xmlStructuredError = xmlStructuredErrorThrDef;
Packit 423ecb
    gs->xmlGenericErrorContext = xmlGenericErrorContextThrDef;
Packit 423ecb
    gs->xmlStructuredErrorContext = xmlStructuredErrorContextThrDef;
Packit 423ecb
    gs->xmlRegisterNodeDefaultValue = xmlRegisterNodeDefaultValueThrDef;
Packit 423ecb
    gs->xmlDeregisterNodeDefaultValue = xmlDeregisterNodeDefaultValueThrDef;
Packit 423ecb
Packit 423ecb
	gs->xmlParserInputBufferCreateFilenameValue = xmlParserInputBufferCreateFilenameValueThrDef;
Packit 423ecb
	gs->xmlOutputBufferCreateFilenameValue = xmlOutputBufferCreateFilenameValueThrDef;
Packit 423ecb
    memset(&gs->xmlLastError, 0, sizeof(xmlError));
Packit 423ecb
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * DOC_DISABLE : we ignore missing doc for the xmlThrDef functions,
Packit 423ecb
 *               those are really internal work
Packit 423ecb
 */
Packit 423ecb
void
Packit 423ecb
xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) {
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    xmlGenericErrorContextThrDef = ctx;
Packit 423ecb
    if (handler != NULL)
Packit 423ecb
	xmlGenericErrorThrDef = handler;
Packit 423ecb
    else
Packit 423ecb
	xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
void
Packit 423ecb
xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) {
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    xmlStructuredErrorContextThrDef = ctx;
Packit 423ecb
    xmlStructuredErrorThrDef = handler;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlRegisterNodeDefault:
Packit 423ecb
 * @func: function pointer to the new RegisterNodeFunc
Packit 423ecb
 *
Packit 423ecb
 * Registers a callback for node creation
Packit 423ecb
 *
Packit 423ecb
 * Returns the old value of the registration function
Packit 423ecb
 */
Packit 423ecb
xmlRegisterNodeFunc
Packit 423ecb
xmlRegisterNodeDefault(xmlRegisterNodeFunc func)
Packit 423ecb
{
Packit 423ecb
    xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue;
Packit 423ecb
Packit 423ecb
    __xmlRegisterCallbacks = 1;
Packit 423ecb
    xmlRegisterNodeDefaultValue = func;
Packit 423ecb
    return(old);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
xmlRegisterNodeFunc
Packit 423ecb
xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func)
Packit 423ecb
{
Packit 423ecb
    xmlRegisterNodeFunc old;
Packit 423ecb
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    old = xmlRegisterNodeDefaultValueThrDef;
Packit 423ecb
Packit 423ecb
    __xmlRegisterCallbacks = 1;
Packit 423ecb
    xmlRegisterNodeDefaultValueThrDef = func;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
Packit 423ecb
    return(old);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
/**
Packit 423ecb
 * xmlDeregisterNodeDefault:
Packit 423ecb
 * @func: function pointer to the new DeregisterNodeFunc
Packit 423ecb
 *
Packit 423ecb
 * Registers a callback for node destruction
Packit 423ecb
 *
Packit 423ecb
 * Returns the previous value of the deregistration function
Packit 423ecb
 */
Packit 423ecb
xmlDeregisterNodeFunc
Packit 423ecb
xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)
Packit 423ecb
{
Packit 423ecb
    xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue;
Packit 423ecb
Packit 423ecb
    __xmlRegisterCallbacks = 1;
Packit 423ecb
    xmlDeregisterNodeDefaultValue = func;
Packit 423ecb
    return(old);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
xmlDeregisterNodeFunc
Packit 423ecb
xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)
Packit 423ecb
{
Packit 423ecb
    xmlDeregisterNodeFunc old;
Packit 423ecb
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    old = xmlDeregisterNodeDefaultValueThrDef;
Packit 423ecb
Packit 423ecb
    __xmlRegisterCallbacks = 1;
Packit 423ecb
    xmlDeregisterNodeDefaultValueThrDef = func;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
Packit 423ecb
    return(old);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
xmlParserInputBufferCreateFilenameFunc
Packit 423ecb
xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func)
Packit 423ecb
{
Packit 423ecb
    xmlParserInputBufferCreateFilenameFunc old;
Packit 423ecb
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    old = xmlParserInputBufferCreateFilenameValueThrDef;
Packit 423ecb
    if (old == NULL) {
Packit 423ecb
		old = __xmlParserInputBufferCreateFilename;
Packit 423ecb
	}
Packit 423ecb
Packit 423ecb
    xmlParserInputBufferCreateFilenameValueThrDef = func;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
Packit 423ecb
    return(old);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
xmlOutputBufferCreateFilenameFunc
Packit 423ecb
xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func)
Packit 423ecb
{
Packit 423ecb
    xmlOutputBufferCreateFilenameFunc old;
Packit 423ecb
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    old = xmlOutputBufferCreateFilenameValueThrDef;
Packit 423ecb
#ifdef LIBXML_OUTPUT_ENABLED
Packit 423ecb
    if (old == NULL) {
Packit 423ecb
		old = __xmlOutputBufferCreateFilename;
Packit 423ecb
	}
Packit 423ecb
#endif
Packit 423ecb
    xmlOutputBufferCreateFilenameValueThrDef = func;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
Packit 423ecb
    return(old);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#ifdef LIBXML_DOCB_ENABLED
Packit 423ecb
#undef	docbDefaultSAXHandler
Packit 423ecb
xmlSAXHandlerV1 *
Packit 423ecb
__docbDefaultSAXHandler(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&docbDefaultSAXHandler);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->docbDefaultSAXHandler);
Packit 423ecb
}
Packit 423ecb
#endif
Packit 423ecb
Packit 423ecb
#ifdef LIBXML_HTML_ENABLED
Packit 423ecb
#undef	htmlDefaultSAXHandler
Packit 423ecb
xmlSAXHandlerV1 *
Packit 423ecb
__htmlDefaultSAXHandler(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&htmlDefaultSAXHandler);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->htmlDefaultSAXHandler);
Packit 423ecb
}
Packit 423ecb
#endif
Packit 423ecb
Packit 423ecb
#undef xmlLastError
Packit 423ecb
xmlError *
Packit 423ecb
__xmlLastError(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlLastError);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlLastError);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
/*
Packit 423ecb
 * The following memory routines were apparently lost at some point,
Packit 423ecb
 * and were re-inserted at this point on June 10, 2004.  Hope it's
Packit 423ecb
 * the right place for them :-)
Packit 423ecb
 */
Packit 423ecb
#if defined(LIBXML_THREAD_ALLOC_ENABLED) && defined(LIBXML_THREAD_ENABLED)
Packit 423ecb
#undef xmlMalloc
Packit 423ecb
xmlMallocFunc *
Packit 423ecb
__xmlMalloc(void){
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
        return (&xmlMalloc);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlMalloc);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef xmlMallocAtomic
Packit 423ecb
xmlMallocFunc *
Packit 423ecb
__xmlMallocAtomic(void){
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
        return (&xmlMallocAtomic);
Packit 423ecb
    else
Packit 423ecb
        return (&xmlGetGlobalState()->xmlMallocAtomic);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef xmlRealloc
Packit 423ecb
xmlReallocFunc *
Packit 423ecb
__xmlRealloc(void){
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
        return (&xmlRealloc);
Packit 423ecb
    else
Packit 423ecb
        return (&xmlGetGlobalState()->xmlRealloc);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef xmlFree
Packit 423ecb
xmlFreeFunc *
Packit 423ecb
__xmlFree(void){
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
        return (&xmlFree);
Packit 423ecb
    else
Packit 423ecb
        return (&xmlGetGlobalState()->xmlFree);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
xmlStrdupFunc *
Packit 423ecb
__xmlMemStrdup(void){
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
        return (&xmlMemStrdup);
Packit 423ecb
    else
Packit 423ecb
        return (&xmlGetGlobalState()->xmlMemStrdup);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#endif
Packit 423ecb
Packit 423ecb
/*
Packit 423ecb
 * Everything starting from the line below is
Packit 423ecb
 * Automatically generated by build_glob.py.
Packit 423ecb
 * Do not modify the previous line.
Packit 423ecb
 */
Packit 423ecb
Packit 423ecb
Packit 423ecb
#undef	oldXMLWDcompatibility
Packit 423ecb
int *
Packit 423ecb
__oldXMLWDcompatibility(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&oldXMLWDcompatibility);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->oldXMLWDcompatibility);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlBufferAllocScheme
Packit 423ecb
xmlBufferAllocationScheme *
Packit 423ecb
__xmlBufferAllocScheme(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlBufferAllocScheme);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlBufferAllocScheme);
Packit 423ecb
}
Packit 423ecb
xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v) {
Packit 423ecb
    xmlBufferAllocationScheme ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlBufferAllocSchemeThrDef;
Packit 423ecb
    xmlBufferAllocSchemeThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlDefaultBufferSize
Packit 423ecb
int *
Packit 423ecb
__xmlDefaultBufferSize(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlDefaultBufferSize);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlDefaultBufferSize);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefDefaultBufferSize(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlDefaultBufferSizeThrDef;
Packit 423ecb
    xmlDefaultBufferSizeThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#ifdef LIBXML_SAX1_ENABLED
Packit 423ecb
#undef	xmlDefaultSAXHandler
Packit 423ecb
xmlSAXHandlerV1 *
Packit 423ecb
__xmlDefaultSAXHandler(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlDefaultSAXHandler);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlDefaultSAXHandler);
Packit 423ecb
}
Packit 423ecb
#endif /* LIBXML_SAX1_ENABLED */
Packit 423ecb
Packit 423ecb
#undef	xmlDefaultSAXLocator
Packit 423ecb
xmlSAXLocator *
Packit 423ecb
__xmlDefaultSAXLocator(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlDefaultSAXLocator);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlDefaultSAXLocator);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlDoValidityCheckingDefaultValue
Packit 423ecb
int *
Packit 423ecb
__xmlDoValidityCheckingDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlDoValidityCheckingDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlDoValidityCheckingDefaultValue);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefDoValidityCheckingDefaultValue(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlDoValidityCheckingDefaultValueThrDef;
Packit 423ecb
    xmlDoValidityCheckingDefaultValueThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlGenericError
Packit 423ecb
xmlGenericErrorFunc *
Packit 423ecb
__xmlGenericError(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlGenericError);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlGenericError);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlStructuredError
Packit 423ecb
xmlStructuredErrorFunc *
Packit 423ecb
__xmlStructuredError(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlStructuredError);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlStructuredError);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlGenericErrorContext
Packit 423ecb
void * *
Packit 423ecb
__xmlGenericErrorContext(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlGenericErrorContext);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlGenericErrorContext);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlStructuredErrorContext
Packit 423ecb
void * *
Packit 423ecb
__xmlStructuredErrorContext(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlStructuredErrorContext);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlStructuredErrorContext);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlGetWarningsDefaultValue
Packit 423ecb
int *
Packit 423ecb
__xmlGetWarningsDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlGetWarningsDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlGetWarningsDefaultValue);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefGetWarningsDefaultValue(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlGetWarningsDefaultValueThrDef;
Packit 423ecb
    xmlGetWarningsDefaultValueThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlIndentTreeOutput
Packit 423ecb
int *
Packit 423ecb
__xmlIndentTreeOutput(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlIndentTreeOutput);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlIndentTreeOutput);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefIndentTreeOutput(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlIndentTreeOutputThrDef;
Packit 423ecb
    xmlIndentTreeOutputThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlTreeIndentString
Packit 423ecb
const char * *
Packit 423ecb
__xmlTreeIndentString(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlTreeIndentString);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlTreeIndentString);
Packit 423ecb
}
Packit 423ecb
const char * xmlThrDefTreeIndentString(const char * v) {
Packit 423ecb
    const char * ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlTreeIndentStringThrDef;
Packit 423ecb
    xmlTreeIndentStringThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlKeepBlanksDefaultValue
Packit 423ecb
int *
Packit 423ecb
__xmlKeepBlanksDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlKeepBlanksDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlKeepBlanksDefaultValue);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefKeepBlanksDefaultValue(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlKeepBlanksDefaultValueThrDef;
Packit 423ecb
    xmlKeepBlanksDefaultValueThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlLineNumbersDefaultValue
Packit 423ecb
int *
Packit 423ecb
__xmlLineNumbersDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlLineNumbersDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlLineNumbersDefaultValue);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefLineNumbersDefaultValue(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlLineNumbersDefaultValueThrDef;
Packit 423ecb
    xmlLineNumbersDefaultValueThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlLoadExtDtdDefaultValue
Packit 423ecb
int *
Packit 423ecb
__xmlLoadExtDtdDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlLoadExtDtdDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlLoadExtDtdDefaultValue);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefLoadExtDtdDefaultValue(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlLoadExtDtdDefaultValueThrDef;
Packit 423ecb
    xmlLoadExtDtdDefaultValueThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlParserDebugEntities
Packit 423ecb
int *
Packit 423ecb
__xmlParserDebugEntities(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlParserDebugEntities);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlParserDebugEntities);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefParserDebugEntities(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlParserDebugEntitiesThrDef;
Packit 423ecb
    xmlParserDebugEntitiesThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlParserVersion
Packit 423ecb
const char * *
Packit 423ecb
__xmlParserVersion(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlParserVersion);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlParserVersion);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlPedanticParserDefaultValue
Packit 423ecb
int *
Packit 423ecb
__xmlPedanticParserDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlPedanticParserDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlPedanticParserDefaultValue);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefPedanticParserDefaultValue(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlPedanticParserDefaultValueThrDef;
Packit 423ecb
    xmlPedanticParserDefaultValueThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlSaveNoEmptyTags
Packit 423ecb
int *
Packit 423ecb
__xmlSaveNoEmptyTags(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlSaveNoEmptyTags);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlSaveNoEmptyTags);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefSaveNoEmptyTags(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlSaveNoEmptyTagsThrDef;
Packit 423ecb
    xmlSaveNoEmptyTagsThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlSubstituteEntitiesDefaultValue
Packit 423ecb
int *
Packit 423ecb
__xmlSubstituteEntitiesDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlSubstituteEntitiesDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultValue);
Packit 423ecb
}
Packit 423ecb
int xmlThrDefSubstituteEntitiesDefaultValue(int v) {
Packit 423ecb
    int ret;
Packit 423ecb
    xmlMutexLock(xmlThrDefMutex);
Packit 423ecb
    ret = xmlSubstituteEntitiesDefaultValueThrDef;
Packit 423ecb
    xmlSubstituteEntitiesDefaultValueThrDef = v;
Packit 423ecb
    xmlMutexUnlock(xmlThrDefMutex);
Packit 423ecb
    return ret;
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlRegisterNodeDefaultValue
Packit 423ecb
xmlRegisterNodeFunc *
Packit 423ecb
__xmlRegisterNodeDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlRegisterNodeDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlRegisterNodeDefaultValue);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlDeregisterNodeDefaultValue
Packit 423ecb
xmlDeregisterNodeFunc *
Packit 423ecb
__xmlDeregisterNodeDefaultValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlDeregisterNodeDefaultValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlParserInputBufferCreateFilenameValue
Packit 423ecb
xmlParserInputBufferCreateFilenameFunc *
Packit 423ecb
__xmlParserInputBufferCreateFilenameValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlParserInputBufferCreateFilenameValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlParserInputBufferCreateFilenameValue);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#undef	xmlOutputBufferCreateFilenameValue
Packit 423ecb
xmlOutputBufferCreateFilenameFunc *
Packit 423ecb
__xmlOutputBufferCreateFilenameValue(void) {
Packit 423ecb
    if (IS_MAIN_THREAD)
Packit 423ecb
	return (&xmlOutputBufferCreateFilenameValue);
Packit 423ecb
    else
Packit 423ecb
	return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
Packit 423ecb
}
Packit 423ecb
Packit 423ecb
#define bottom_globals
Packit 423ecb
#include "elfgcchack.h"