Commit 5e2dace1 authored by Daniel Veillard's avatar Daniel Veillard

Cleanup, cleanup .. removed libxml softlink for good cleanup to get 100%

Cleanup, cleanup ..
* configure.in Makefile.am: removed libxml softlink for good
* include/libxml/*.h *.c doc/Makefile.am: cleanup to get
  100% coverage by gtk-doc
Daniel
parent 8599e70d
Thu Jul 19 15:29:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* configure.in Makefile.am: removed libxml softlink for good
* include/libxml/*.h *.c doc/Makefile.am: cleanup to get
100% coverage by gtk-doc
Tue Jul 17 17:36:46 EDT 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* xmlmemory.c include/libxml/xmlmemory.h: debugging on IA64,
......
......@@ -1785,6 +1785,9 @@ static int areBlanks(htmlParserCtxtPtr ctxt, const xmlChar *str, int len) {
* @URI: URI for the dtd, or NULL
* @ExternalID: the external ID of the DTD, or NULL
*
* Creates a new HTML document without a DTD node if @URI and @ExternalID
* are NULL
*
* Returns a new document, do not intialize the DTD if not provided
*/
htmlDocPtr
......@@ -1827,6 +1830,8 @@ htmlNewDocNoDtD(const xmlChar *URI, const xmlChar *ExternalID) {
* @URI: URI for the dtd, or NULL
* @ExternalID: the external ID of the DTD, or NULL
*
* Creates a new HTML document
*
* Returns a new document
*/
htmlDocPtr
......
......@@ -79,14 +79,6 @@ testURI_LDADD= $(LDADDS)
check-local: tests
$(srcdir)/libxml:
-$(RM) -f $(srcdir)/libxml
ln -s $(srcdir)/. $(srcdir)/libxml
install-data: $(srcdir)/libxml
$(libxml2_la_SOURCES): $(srcdir)/libxml
testall : tests SVGtests SAXtests
tests: XMLtests XMLenttests HTMLtests Validtests URItests XPathtests XPtrtests XIncludetests Scripttests
......
......@@ -473,7 +473,7 @@ xmlParseCatalog(const xmlChar *value, const char *file) {
* *
************************************************************************/
/*
/**
* xmlLoadCatalog:
* @filename: a file path
*
......@@ -548,7 +548,7 @@ xmlLoadCatalog(const char *filename) {
return(ret);
}
/*
/**
* xmlLoadCatalogs:
* @paths: a list of file path separated by ':' or spaces
*
......
......@@ -441,24 +441,5 @@ AC_SUBST(HAVE_ISINF)
AC_SUBST(M_LIBS)
AC_SUBST(RDL_LIBS)
dnl
dnl cleanup any remaining symlinks if any for include/libxml, this
dnl is only needed for the people using CVS and transitionning
dnl
if test -d $srcdir/include/CVS
then
if test -L $srcdir/include/libxml
then
rm -rf $srcdir/include/libxml
echo The CVS repository changed a bit
echo 'please run "cvs update -d" and rerun the configuration script'
exit 1
fi
if test -e $srcdir/xmlversion.h
then
rm -f $srcdir/xmlversion.h
fi
fi
AC_OUTPUT(libxml.spec Makefile include/Makefile include/libxml/Makefile doc/Makefile example/Makefile include/libxml/xmlversion.h include/libxml/xmlwin32version.h xml2-config libxml-2.0.pc xml2Conf.sh)
......@@ -29,18 +29,31 @@
#define IS_BLANK(c) \
(((c) == '\n') || ((c) == '\r') || ((c) == '\t') || ((c) == ' '))
void xmlDebugDumpString(FILE *output, const xmlChar *str) {
/**
* xmlDebugDumpString:
* @output: the FILE * for the output
* @str: the string
*
* Dumps informations about the string, shorten it if necessary
*/
void
xmlDebugDumpString(FILE * output, const xmlChar * str)
{
int i;
if (str == NULL) {
fprintf(output, "(NULL)");
return;
}
for (i = 0;i < 40;i++)
if (str[i] == 0) return;
else if (IS_BLANK(str[i])) fputc(' ', output);
for (i = 0; i < 40; i++)
if (str[i] == 0)
return;
else if (IS_BLANK(str[i]))
fputc(' ', output);
else if (str[i] >= 0x80)
fprintf(output, "#%X", str[i]);
else fputc(str[i], output);
else
fputc(str[i], output);
fprintf(output, "...");
}
......@@ -457,7 +470,16 @@ xmlDebugDumpEntity(FILE *output, xmlEntityPtr ent, int depth) {
}
}
void xmlDebugDumpAttr(FILE *output, xmlAttrPtr attr, int depth) {
/**
* xmlDebugDumpAttr:
* @output: the FILE * for the output
* @attr: the attribute
* @depth: the indentation level.
*
* Dumps debug information for the attribute
*/
void
xmlDebugDumpAttr(FILE *output, xmlAttrPtr attr, int depth) {
int i;
char shift[100];
......@@ -495,18 +517,38 @@ void xmlDebugDumpAttr(FILE *output, xmlAttrPtr attr, int depth) {
}
}
void xmlDebugDumpAttrList(FILE *output, xmlAttrPtr attr, int depth) {
/**
* xmlDebugDumpAttrList:
* @output: the FILE * for the output
* @attr: the attribute list
* @depth: the indentation level.
*
* Dumps debug information for the attribute list
*/
void
xmlDebugDumpAttrList(FILE * output, xmlAttrPtr attr, int depth)
{
while (attr != NULL) {
xmlDebugDumpAttr(output, attr, depth);
attr = attr->next;
}
}
void xmlDebugDumpOneNode(FILE *output, xmlNodePtr node, int depth) {
/**
* xmlDebugDumpOneNode:
* @output: the FILE * for the output
* @node: the node
* @depth: the indentation level.
*
* Dumps debug information for the element node, it is not recursive
*/
void
xmlDebugDumpOneNode(FILE * output, xmlNodePtr node, int depth)
{
int i;
char shift[100];
for (i = 0;((i < depth) && (i < 25));i++)
for (i = 0; ((i < depth) && (i < 25)); i++)
shift[2 * i] = shift[2 * i + 1] = ' ';
shift[2 * i] = shift[2 * i + 1] = 0;
......@@ -603,10 +645,9 @@ void xmlDebugDumpOneNode(FILE *output, xmlNodePtr node, int depth) {
if (node->properties != NULL)
xmlDebugDumpAttrList(output, node->properties, depth + 1);
if (node->type != XML_ENTITY_REF_NODE) {
if ((node->type != XML_ELEMENT_NODE) &&
(node->content != NULL)) {
shift[2 * i] = shift[2 * i + 1] = ' ' ;
shift[2 * i + 2] = shift[2 * i + 3] = 0 ;
if ((node->type != XML_ELEMENT_NODE) && (node->content != NULL)) {
shift[2 * i] = shift[2 * i + 1] = ' ';
shift[2 * i + 2] = shift[2 * i + 3] = 0;
fprintf(output, shift);
fprintf(output, "content=");
#ifndef XML_USE_BUFFER_CONTENT
......@@ -618,6 +659,7 @@ void xmlDebugDumpOneNode(FILE *output, xmlNodePtr node, int depth) {
}
} else {
xmlEntityPtr ent;
ent = xmlGetDocEntity(node->doc, node->name);
if (ent != NULL)
xmlDebugDumpEntity(output, ent, depth + 1);
......@@ -633,27 +675,49 @@ void xmlDebugDumpOneNode(FILE *output, xmlNodePtr node, int depth) {
fprintf(output, "PBM: Node doc differs from parent's one\n");
if (node->prev == NULL) {
if ((node->parent != NULL) && (node->parent->children != node))
fprintf(output, "PBM: Node has no prev and not first of list\n");
fprintf(output,
"PBM: Node has no prev and not first of list\n");
} else {
if (node->prev->next != node)
fprintf(output, "PBM: Node prev->next : back link wrong\n");
}
if (node->next == NULL) {
if ((node->parent != NULL) && (node->parent->last != node))
fprintf(output, "PBM: Node has no next and not last of list\n");
fprintf(output,
"PBM: Node has no next and not last of list\n");
} else {
if (node->next->prev != node)
fprintf(output, "PBM: Node next->prev : forward link wrong\n");
}
}
void xmlDebugDumpNode(FILE *output, xmlNodePtr node, int depth) {
/**
* xmlDebugDumpNode:
* @output: the FILE * for the output
* @node: the node
* @depth: the indentation level.
*
* Dumps debug information for the element node, it is recursive
*/
void
xmlDebugDumpNode(FILE * output, xmlNodePtr node, int depth)
{
xmlDebugDumpOneNode(output, node, depth);
if ((node->children != NULL) && (node->type != XML_ENTITY_REF_NODE))
xmlDebugDumpNodeList(output, node->children, depth + 1);
}
void xmlDebugDumpNodeList(FILE *output, xmlNodePtr node, int depth) {
/**
* xmlDebugDumpNodeList:
* @output: the FILE * for the output
* @node: the node list
* @depth: the indentation level.
*
* Dumps debug information for the list of element node, it is recursive
*/
void
xmlDebugDumpNodeList(FILE * output, xmlNodePtr node, int depth)
{
while (node != NULL) {
xmlDebugDumpNode(output, node, depth);
node = node->next;
......@@ -661,8 +725,18 @@ void xmlDebugDumpNodeList(FILE *output, xmlNodePtr node, int depth) {
}
void xmlDebugDumpDocumentHead(FILE *output, xmlDocPtr doc) {
if (output == NULL) output = stdout;
/**
* xmlDebugDumpDocumentHead:
* @output: the FILE * for the output
* @doc: the document
*
* Dumps debug information cncerning the document, not recursive
*/
void
xmlDebugDumpDocumentHead(FILE * output, xmlDocPtr doc)
{
if (output == NULL)
output = stdout;
if (doc == NULL) {
fprintf(output, "DOCUMENT == NULL !\n");
return;
......@@ -737,20 +811,38 @@ void xmlDebugDumpDocumentHead(FILE *output, xmlDocPtr doc) {
xmlDebugDumpNamespaceList(output, doc->oldNs, 0);
}
void xmlDebugDumpDocument(FILE *output, xmlDocPtr doc) {
if (output == NULL) output = stdout;
/**
* xmlDebugDumpDocument:
* @output: the FILE * for the output
* @doc: the document
*
* Dumps debug information for the document, it's recursive
*/
void
xmlDebugDumpDocument(FILE * output, xmlDocPtr doc)
{
if (output == NULL)
output = stdout;
if (doc == NULL) {
fprintf(output, "DOCUMENT == NULL !\n");
return;
}
xmlDebugDumpDocumentHead(output, doc);
if (((doc->type == XML_DOCUMENT_NODE) ||
(doc->type == XML_HTML_DOCUMENT_NODE)) &&
(doc->children != NULL))
(doc->type == XML_HTML_DOCUMENT_NODE)) && (doc->children != NULL))
xmlDebugDumpNodeList(output, doc->children, 1);
}
void xmlDebugDumpDTD(FILE *output, xmlDtdPtr dtd) {
/**
* xmlDebugDumpDTD:
* @output: the FILE * for the output
* @dtd: the DTD
*
* Dumps debug information for the DTD
*/
void
xmlDebugDumpDTD(FILE * output, xmlDtdPtr dtd)
{
if (dtd == NULL)
return;
if (dtd->type != XML_DTD_NODE) {
......@@ -772,14 +864,17 @@ void xmlDebugDumpDTD(FILE *output, xmlDtdPtr dtd) {
if ((dtd->parent != NULL) && (dtd->doc != dtd->parent->doc))
fprintf(output, "PBM: Dtd doc differs from parent's one\n");
if (dtd->prev == NULL) {
if ((dtd->parent != NULL) && (dtd->parent->children != (xmlNodePtr)dtd))
fprintf(output, "PBM: Dtd has no prev and not first of list\n");
if ((dtd->parent != NULL)
&& (dtd->parent->children != (xmlNodePtr) dtd))
fprintf(output,
"PBM: Dtd has no prev and not first of list\n");
} else {
if (dtd->prev->next != (xmlNodePtr) dtd)
fprintf(output, "PBM: Dtd prev->next : back link wrong\n");
}
if (dtd->next == NULL) {
if ((dtd->parent != NULL) && (dtd->parent->last != (xmlNodePtr) dtd))
if ((dtd->parent != NULL)
&& (dtd->parent->last != (xmlNodePtr) dtd))
fprintf(output, "PBM: Dtd has no next and not last of list\n");
} else {
if (dtd->next->prev != (xmlNodePtr) dtd)
......@@ -826,8 +921,18 @@ xmlDebugDumpEntityCallback(xmlEntityPtr cur, FILE *output) {
fprintf(output, "\n");
}
void xmlDebugDumpEntities(FILE *output, xmlDocPtr doc) {
if (output == NULL) output = stdout;
/**
* xmlDebugDumpEntities:
* @output: the FILE * for the output
* @doc: the document
*
* Dumps debug information for all the entities in use by the document
*/
void
xmlDebugDumpEntities(FILE * output, xmlDocPtr doc)
{
if (output == NULL)
output = stdout;
if (doc == NULL) {
fprintf(output, "DOCUMENT == NULL !\n");
return;
......@@ -879,15 +984,19 @@ void xmlDebugDumpEntities(FILE *output, xmlDocPtr doc) {
if ((doc->intSubset != NULL) && (doc->intSubset->entities != NULL)) {
xmlEntitiesTablePtr table = (xmlEntitiesTablePtr)
doc->intSubset->entities;
fprintf(output, "Entities in internal subset\n");
xmlHashScan(table, (xmlHashScanner)xmlDebugDumpEntityCallback, output);
xmlHashScan(table, (xmlHashScanner) xmlDebugDumpEntityCallback,
output);
} else
fprintf(output, "No entities in internal subset\n");
if ((doc->extSubset != NULL) && (doc->extSubset->entities != NULL)) {
xmlEntitiesTablePtr table = (xmlEntitiesTablePtr)
doc->extSubset->entities;
fprintf(output, "Entities in external subset\n");
xmlHashScan(table, (xmlHashScanner)xmlDebugDumpEntityCallback, output);
xmlHashScan(table, (xmlHashScanner) xmlDebugDumpEntityCallback,
output);
} else
fprintf(output, "No entities in external subset\n");
}
......@@ -942,7 +1051,8 @@ static int xmlLsCountNode(xmlNodePtr node) {
return(ret);
}
void xmlLsOneNode(FILE *output, xmlNodePtr node) {
static void
xmlLsOneNode(FILE *output, xmlNodePtr node) {
switch (node->type) {
case XML_ELEMENT_NODE:
fprintf(output, "-");
......
......@@ -17,7 +17,7 @@ TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)/html
# html_DATA = gnome-dev-info.html
scan:
gtkdoc-scan --module=libxml --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="acconfig.h config.h"
gtkdoc-scan --module=libxml --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="acconfig.h config.h xmlwin32version.h win32config.h trio.h strio.h triop.h"
templates: scan
gtkdoc-mktmpl --module=libxml
......
......@@ -362,7 +362,6 @@ xmlUTF8Strloc(const xmlChar *utf, const xmlChar *utfchar) {
/**
* xmlUTF8Strsub:
* @utf: a sequence of UTF-8 encoded bytes
*
* @start: relative pos of first char
* @len: total number to copy
*
......@@ -1768,8 +1767,8 @@ xmlGetCharEncodingHandler(xmlCharEncoding enc) {
}
/**
* xmlGetCharEncodingHandler:
* @enc: a string describing the char encoding.
* xmlFindCharEncodingHandler:
* @name: a string describing the char encoding.
*
* Search in the registrered set the handler able to read/write that encoding.
*
......
......@@ -304,7 +304,7 @@ xmlHashUpdateEntry2(xmlHashTablePtr table, const xmlChar *name,
*
* Find the userdata specified by the name.
*
* Returns the a pointer to the userdata
* Returns the pointer to the userdata
*/
void *
xmlHashLookup(xmlHashTablePtr table, const xmlChar *name) {
......@@ -319,7 +319,7 @@ xmlHashLookup(xmlHashTablePtr table, const xmlChar *name) {
*
* Find the userdata specified by the (name, name2) tuple.
*
* Returns the a pointer to the userdata
* Returns the pointer to the userdata
*/
void *
xmlHashLookup2(xmlHashTablePtr table, const xmlChar *name,
......@@ -470,7 +470,7 @@ xmlHashUpdateEntry3(xmlHashTablePtr table, const xmlChar *name,
}
/**
* xmlHashLookup:
* xmlHashLookup3:
* @table: the hash table
* @name: the name of the userdata
* @name2: a second name of the userdata
......@@ -615,6 +615,8 @@ xmlHashCopy(xmlHashTablePtr table, xmlHashCopier f) {
* xmlHashSize:
* @table: the hash table
*
* Query the number of element installed in the hash table.
*
* Returns the number of elements in the hash table or
* -1 in case of error
*/
......
......@@ -54,7 +54,7 @@ void entityDecl (void *ctx,
xmlChar *content);
void attributeDecl (void *ctx,
const xmlChar *elem,
const xmlChar *name,
const xmlChar *fullname,
int type,
int def,
const xmlChar *defaultValue,
......
......@@ -36,7 +36,7 @@ extern "C" {
#define XML_CATALOGS_NAMESPACE \
(const xmlChar *) "urn:oasis:names:tc:entity:xmlns:xml:catalog"
int xmlLoadCatalog (const char *URL);
int xmlLoadCatalog (const char *filename);
void xmlLoadCatalogs (const char *paths);
void xmlCatalogCleanup (void);
void xmlCatalogDump (FILE *out);
......
......@@ -43,11 +43,9 @@ void xmlDebugDumpDocumentHead(FILE *output,
void xmlDebugDumpDocument (FILE *output,
xmlDocPtr doc);
void xmlDebugDumpDTD (FILE *output,
xmlDtdPtr doc);
xmlDtdPtr dtd);
void xmlDebugDumpEntities (FILE *output,
xmlDocPtr doc);
void xmlLsOneNode (FILE *output,
xmlNodePtr node);
/****************************************************************
* *
......
......@@ -104,19 +104,10 @@ void * xmlHashLookup3 (xmlHashTablePtr table,
*/
xmlHashTablePtr xmlHashCopy (xmlHashTablePtr table,
xmlHashCopier f);
int xmlHashSize (xmlHashTablePtr);
int xmlHashSize (xmlHashTablePtr table);
void xmlHashScan (xmlHashTablePtr table,
xmlHashScanner f,
void *data);
void xmlHashScan1 (xmlHashTablePtr table,
const xmlChar *name,
xmlHashScanner f,
void *data);
void xmlHashScan2 (xmlHashTablePtr table,
const xmlChar *name,
const xmlChar *name2,
xmlHashScanner f,
void *data);
void xmlHashScan3 (xmlHashTablePtr table,
const xmlChar *name,
const xmlChar *name2,
......
......@@ -19,8 +19,10 @@
extern "C" {
#endif
/*
* Constants.
/**
* XML_DEFAULT_VERSION:
*
* The default version of XML used: 1.0
*/
#define XML_DEFAULT_VERSION "1.0"
......@@ -36,6 +38,7 @@ extern "C" {
*/
typedef void (* xmlParserInputDeallocate)(xmlChar *);
typedef struct _xmlParserInput xmlParserInput;
typedef xmlParserInput *xmlParserInputPtr;
struct _xmlParserInput {
......@@ -344,6 +347,11 @@ LIBXML_DLL_IMPORT extern xmlSAXHandler docbDefaultSAXHandler;
*/
#ifdef VMS
/**
* xmlSubstituteEntitiesDefaultValue:
*
* global variable controlling the entity substitution default behaviour
*/
LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultVal;
#define xmlSubstituteEntitiesDefaultValue xmlSubstituteEntitiesDefaultVal
#else
......
......@@ -326,12 +326,29 @@ void xmlParseMisc (xmlParserCtxtPtr ctxt);
void xmlParseExternalSubset (xmlParserCtxtPtr ctxt,
const xmlChar *ExternalID,
const xmlChar *SystemID);
/*
* Entities substitution
/**
* XML_SUBSTITUTE_NONE:
*
* If no entities need to be substitued
*/
#define XML_SUBSTITUTE_NONE 0
/**
* XML_SUBSTITUTE_REF:
*
* Whether general entities need to be substitued
*/
#define XML_SUBSTITUTE_REF 1
/**
* XML_SUBSTITUTE_PEREF:
*
* Whether parameter entities need to be substitued
*/
#define XML_SUBSTITUTE_PEREF 2
/**
* XML_SUBSTITUTE_BOTH:
*
* Both general and parameter entities need to be substitued
*/
#define XML_SUBSTITUTE_BOTH 3
xmlChar * xmlDecodeEntities (xmlParserCtxtPtr ctxt,
......
......@@ -25,6 +25,12 @@
extern "C" {
#endif
/**
* XML_XML_NAMESPACE:
*
* This is the namespace for the special xml: prefix predefined in the
* XML Namespace specification
*/
#define XML_XML_NAMESPACE \
(const xmlChar *) "http://www.w3.org/XML/1998/namespace"
......@@ -249,6 +255,11 @@ struct _xmlElement {
};
/**
* XML_LOCAL_NAMESPACE:
*
* A namespace declaration node
*/
#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
typedef xmlElementType xmlNsType;
......@@ -259,7 +270,6 @@ typedef xmlElementType xmlNsType;
* Note that prefix == NULL is valid, it defines the default namespace
* within the subtree (until overriden).
*
* XML_GLOBAL_NAMESPACE is now deprecated for good
* xmlNsType is unified with xmlElementType
*/
......@@ -405,8 +415,21 @@ struct _xmlNode {
xmlNs *nsDef; /* namespace definitions on this node */
};
#define XML_GET_CONTENT(n) ((n)->type == XML_ELEMENT_PTR ? NULL : (n)->content)
#define XML_GET_LINE(n) ((n)->type == XML_ELEMENT_PTR ? (int) (n)->content : 0)
/**
* XML_GET_CONTENT:
*
* macro to extract the content pointer of a node
*/
#define XML_GET_CONTENT(n) \
((n)->type == XML_ELEMENT_PTR ? NULL : (n)->content)
/**
* XML_GET_LINE:
*
* macro to extract the line number of an element node
*/
#define XML_GET_LINE(n) \
((n)->type == XML_ELEMENT_PTR ? (int) (n)->content : 0)
/**
* xmlDoc:
......@@ -499,7 +522,6 @@ int xmlBufferGrow (xmlBufferPtr buf,
unsigned int len);
void xmlBufferEmpty (xmlBufferPtr buf);
const xmlChar* xmlBufferContent (const xmlBufferPtr buf);
int xmlBufferUse (const xmlBufferPtr buf);
void xmlBufferSetAllocationScheme(xmlBufferPtr buf,
xmlBufferAllocationScheme scheme);
int xmlBufferLength (const xmlBufferPtr buf);
......@@ -709,7 +731,6 @@ void xmlNodeSetBase (xmlNodePtr cur,
* Removing content.
*/
int xmlRemoveProp (xmlAttrPtr attr);
int xmlRemoveNode (xmlNodePtr node); /* TODO */
int xmlUnsetProp (xmlNodePtr node,
const xmlChar *name);
int xmlUnsetNsProp (xmlNodePtr node,
......
......@@ -45,7 +45,7 @@ struct _xmlURI {
xmlURIPtr xmlCreateURI (void);
xmlChar * xmlBuildURI (const xmlChar *URI,
const xmlChar *base);
xmlURIPtr xmlParseURI (const char *URI);
xmlURIPtr xmlParseURI (const char *str);
int xmlParseURIReference (xmlURIPtr uri,
const char *str);
xmlChar * xmlSaveUri (xmlURIPtr uri);
......
......@@ -160,7 +160,6 @@ xmlIDPtr xmlAddID (xmlValidCtxtPtr ctxt,
xmlDocPtr doc,
const xmlChar *value,
xmlAttrPtr attr);
xmlIDTablePtr xmlCopyIDTable (xmlIDTablePtr table);
void xmlFreeIDTable (xmlIDTablePtr table);
xmlAttrPtr xmlGetID (xmlDocPtr doc,
const xmlChar *ID);
......@@ -174,7 +173,6 @@ xmlRefPtr xmlAddRef (xmlValidCtxtPtr ctxt,
xmlDocPtr doc,
const xmlChar *value,
xmlAttrPtr attr);
xmlRefTablePtr xmlCopyRefTable (xmlRefTablePtr table);
void xmlFreeRefTable (xmlRefTablePtr table);
int xmlIsRef (xmlDocPtr doc,
xmlNodePtr elem,
......
......@@ -60,9 +60,7 @@ typedef enum {
* This is the prototype for the link detection routine
* It calls the default link detection callbacks upon link detection.
*/
typedef void
(*xlinkNodeDetectFunc) (void *ctx,
xmlNodePtr node);
typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
/**
* The link detection module interract with the upper layers using
......
......@@ -35,11 +35,16 @@
/**
* DEBUG_MEMORY_LOCATION:
*
* should be activated
* DEBUG_MEMORY_LOCATION should be activated only when debugging
* libxml i.e. if libxml has been configured with --with-debug-mem too
*/
#ifdef DEBUG_MEMORY_LOCATION
/**
* MEM_LIST:
*
* keep track of all allocated blocks for error reporting
*/
#define MEM_LIST /* keep a list of all the allocated memory blocks */
#endif
......@@ -90,9 +95,34 @@ void xmlMemoryDump (void);
int xmlInitMemory (void);
#ifdef DEBUG_MEMORY_LOCATION
#define xmlMalloc(x) xmlMallocLoc((x), __FILE__, __LINE__)
#define xmlRealloc(p, x) xmlReallocLoc((p), (x), __FILE__, __LINE__)
#define xmlMemStrdup(x) xmlMemStrdupLoc((x), __FILE__, __LINE__)
/**
* xmlMalloc:
* @size: number of bytes to allocate
*
* Wrapper for the malloc() function used in the XML library
*
* Returns the pointer to the allocated area or NULL in case of error
*/
#define xmlMalloc(size) xmlMallocLoc((size), __FILE__, __LINE__)
/**
* xmlRealloc:
* @ptr: pointer to the existing allocated area
* @size: number of bytes to allocate
*
* Wrapper for the realloc() function used in the XML library
*
* Returns the pointer to the allocated area or NULL in case of error
*/
#define xmlRealloc(ptr, size) xmlReallocLoc((ptr), (size), __FILE__, __LINE__)
/**
* xmlMemStrdup:
* @str: pointer to the existing string
*
* Wrapper for the strdup() function, xmlStrdup() is usually preferred
*
* Returns the pointer to the allocated area or NULL in case of error
*/
#define xmlMemStrdup(str) xmlMemStrdupLoc((str), __FILE__, __LINE__)
void * xmlMallocLoc(size_t size, const char *file, int line);
void * xmlReallocLoc(void *ptr,size_t size, const char *file, int line);
......
......@@ -20,9 +20,34 @@ extern "C" {
#ifndef LIBXML2_COMPILING_MSCCDEF
extern void xmlCheckVersion(int version);
#endif /* LIBXML2_COMPILING_MSCCDEF */
/**