summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2003-12-19 16:57:36 +0000
committerWez Furlong <wez@php.net>2003-12-19 16:57:36 +0000
commit06f448cf61b5dc1138d8e7620395b9d30a60a6cd (patch)
treeae616f18838aeb6371ba558fe64503c23e8de552
parent9ecd238b6bb90cba8188bcd4174ecf0a7395e103 (diff)
downloadphp-git-06f448cf61b5dc1138d8e7620395b9d30a60a6cd.tar.gz
Export expat compat functions.
"Implement" XML_GetCurrentByteCount(); probably not 100% correct, but the only usage of it is by xmlrpc extension when reporting an error; it should be safe.
-rw-r--r--ext/xml/compat.c55
-rw-r--r--ext/xml/expat_compat.h45
2 files changed, 55 insertions, 45 deletions
diff --git a/ext/xml/compat.c b/ext/xml/compat.c
index d11b59b87a..e98da4fdcc 100644
--- a/ext/xml/compat.c
+++ b/ext/xml/compat.c
@@ -377,13 +377,13 @@ php_xml_compat_handlers = {
1
};
-XML_Parser
+PHPAPI XML_Parser
XML_ParserCreate(const XML_Char *encoding)
{
return XML_ParserCreate_MM(encoding, NULL, NULL);
}
-XML_Parser
+PHPAPI XML_Parser
XML_ParserCreateNS(const XML_Char *encoding, const XML_Char sep)
{
XML_Char tmp[2];
@@ -392,7 +392,7 @@ XML_ParserCreateNS(const XML_Char *encoding, const XML_Char sep)
return XML_ParserCreate_MM(encoding, NULL, tmp);
}
-XML_Parser
+PHPAPI XML_Parser
XML_ParserCreate_MM(const XML_Char *encoding, const XML_Memory_Handling_Suite *memsuite, const XML_Char *sep)
{
XML_Parser parser;
@@ -422,86 +422,86 @@ XML_ParserCreate_MM(const XML_Char *encoding, const XML_Memory_Handling_Suite *m
return parser;
}
-void
+PHPAPI void
XML_SetUserData(XML_Parser parser, void *user)
{
parser->user = user;
}
-void *
+PHPAPI void *
XML_GetUserData(XML_Parser parser)
{
return parser->user;
}
-void
+PHPAPI void
XML_SetElementHandler(XML_Parser parser, XML_StartElementHandler start, XML_EndElementHandler end)
{
parser->h_start_element = start;
parser->h_end_element = end;
}
-void
+PHPAPI void
XML_SetCharacterDataHandler(XML_Parser parser, XML_CharacterDataHandler cdata)
{
parser->h_cdata = cdata;
}
-void
+PHPAPI void
XML_SetProcessingInstructionHandler(XML_Parser parser, XML_ProcessingInstructionHandler pi)
{
parser->h_pi = pi;
}
-void
+PHPAPI void
XML_SetCommentHandler(XML_Parser parser, XML_CommentHandler comment)
{
parser->h_comment = comment;
}
-void
+PHPAPI void
XML_SetDefaultHandler(XML_Parser parser, XML_DefaultHandler d)
{
parser->h_default = d;
}
-void
+PHPAPI void
XML_SetUnparsedEntityDeclHandler(XML_Parser parser, XML_UnparsedEntityDeclHandler unparsed_decl)
{
parser->h_unparsed_entity_decl = unparsed_decl;
}
-void
+PHPAPI void
XML_SetNotationDeclHandler(XML_Parser parser, XML_NotationDeclHandler notation_decl)
{
parser->h_notation_decl = notation_decl;
}
-void
+PHPAPI void
XML_SetExternalEntityRefHandler(XML_Parser parser, XML_ExternalEntityRefHandler ext_entity)
{
parser->h_external_entity_ref = ext_entity;
}
-void
+PHPAPI void
XML_SetStartNamespaceDeclHandler(XML_Parser parser, XML_StartNamespaceDeclHandler start_ns)
{
parser->h_start_ns = start_ns;
}
-void
+PHPAPI void
XML_SetEndNamespaceDeclHandler(XML_Parser parser, XML_EndNamespaceDeclHandler end_ns)
{
parser->h_end_ns = end_ns;
}
-int
+PHPAPI int
XML_Parse(XML_Parser parser, const XML_Char *data, int data_len, int is_final)
{
return !xmlParseChunk(parser->parser, data, data_len, is_final);
}
-int
+PHPAPI int
XML_GetErrorCode(XML_Parser parser)
{
return parser->parser->errNo;
@@ -606,7 +606,7 @@ const XML_Char *error_mapping[] = {
"XML_ERR_NO_DTD"
};
-const XML_Char *
+PHPAPI const XML_Char *
XML_ErrorString(int code)
{
if (code < 0 || code >= (int)sizeof(error_mapping)) {
@@ -615,26 +615,35 @@ XML_ErrorString(int code)
return error_mapping[code];
}
-int
+PHPAPI int
XML_GetCurrentLineNumber(XML_Parser parser)
{
return parser->parser->input->line;
}
-int
+PHPAPI int
XML_GetCurrentColumnNumber(XML_Parser parser)
{
return parser->parser->input->col;
}
-int
+PHPAPI int
XML_GetCurrentByteIndex(XML_Parser parser)
{
return parser->parser->input->consumed +
(parser->parser->input->cur - parser->parser->input->base);
}
-const XML_Char *XML_ExpatVersion(void)
+PHPAPI int
+XML_GetCurrentByteCount(XML_Parser parser)
+{
+ /* WARNING: this is identical to ByteIndex; it should probably
+ * be different */
+ return parser->parser->input->consumed +
+ (parser->parser->input->cur - parser->parser->input->base);
+}
+
+PHPAPI const XML_Char *XML_ExpatVersion(void)
{
return "1.0";
}
@@ -662,7 +671,7 @@ _free_ns_pointer(void *ptr, xmlChar *name)
efree(ptr);
}
-void
+PHPAPI void
XML_ParserFree(XML_Parser parser)
{
if (parser->use_namespace) {
diff --git a/ext/xml/expat_compat.h b/ext/xml/expat_compat.h
index 13012bc2c3..76c57cb491 100644
--- a/ext/xml/expat_compat.h
+++ b/ext/xml/expat_compat.h
@@ -113,28 +113,29 @@ enum XML_Content_Type {
XML_CTYPE_SEQ
};
-XML_Parser XML_ParserCreate(const XML_Char *);
-XML_Parser XML_ParserCreateNS(const XML_Char *, const XML_Char);
-XML_Parser XML_ParserCreate_MM(const XML_Char *, const XML_Memory_Handling_Suite *, const XML_Char *);
-void XML_SetUserData(XML_Parser, void *);
-void *XML_GetUserData(XML_Parser);
-void XML_SetElementHandler(XML_Parser, XML_StartElementHandler, XML_EndElementHandler);
-void XML_SetCharacterDataHandler(XML_Parser, XML_CharacterDataHandler);
-void XML_SetProcessingInstructionHandler(XML_Parser, XML_ProcessingInstructionHandler);
-void XML_SetDefaultHandler(XML_Parser, XML_DefaultHandler);
-void XML_SetUnparsedEntityDeclHandler(XML_Parser, XML_UnparsedEntityDeclHandler);
-void XML_SetNotationDeclHandler(XML_Parser, XML_NotationDeclHandler);
-void XML_SetExternalEntityRefHandler(XML_Parser, XML_ExternalEntityRefHandler);
-void XML_SetStartNamespaceDeclHandler(XML_Parser, XML_StartNamespaceDeclHandler);
-void XML_SetEndNamespaceDeclHandler(XML_Parser, XML_EndNamespaceDeclHandler);
-int XML_Parse(XML_Parser, const XML_Char *, int data_len, int is_final);
-int XML_GetErrorCode(XML_Parser);
-const XML_Char *XML_ErrorString(int);
-int XML_GetCurrentLineNumber(XML_Parser);
-int XML_GetCurrentColumnNumber(XML_Parser);
-int XML_GetCurrentByteIndex(XML_Parser);
-const XML_Char *XML_ExpatVersion(void);
-void XML_ParserFree(XML_Parser);
+PHPAPI XML_Parser XML_ParserCreate(const XML_Char *);
+PHPAPI XML_Parser XML_ParserCreateNS(const XML_Char *, const XML_Char);
+PHPAPI XML_Parser XML_ParserCreate_MM(const XML_Char *, const XML_Memory_Handling_Suite *, const XML_Char *);
+PHPAPI void XML_SetUserData(XML_Parser, void *);
+PHPAPI void *XML_GetUserData(XML_Parser);
+PHPAPI void XML_SetElementHandler(XML_Parser, XML_StartElementHandler, XML_EndElementHandler);
+PHPAPI void XML_SetCharacterDataHandler(XML_Parser, XML_CharacterDataHandler);
+PHPAPI void XML_SetProcessingInstructionHandler(XML_Parser, XML_ProcessingInstructionHandler);
+PHPAPI void XML_SetDefaultHandler(XML_Parser, XML_DefaultHandler);
+PHPAPI void XML_SetUnparsedEntityDeclHandler(XML_Parser, XML_UnparsedEntityDeclHandler);
+PHPAPI void XML_SetNotationDeclHandler(XML_Parser, XML_NotationDeclHandler);
+PHPAPI void XML_SetExternalEntityRefHandler(XML_Parser, XML_ExternalEntityRefHandler);
+PHPAPI void XML_SetStartNamespaceDeclHandler(XML_Parser, XML_StartNamespaceDeclHandler);
+PHPAPI void XML_SetEndNamespaceDeclHandler(XML_Parser, XML_EndNamespaceDeclHandler);
+PHPAPI int XML_Parse(XML_Parser, const XML_Char *, int data_len, int is_final);
+PHPAPI int XML_GetErrorCode(XML_Parser);
+PHPAPI const XML_Char *XML_ErrorString(int);
+PHPAPI int XML_GetCurrentLineNumber(XML_Parser);
+PHPAPI int XML_GetCurrentColumnNumber(XML_Parser);
+PHPAPI int XML_GetCurrentByteIndex(XML_Parser);
+PHPAPI int XML_GetCurrentByteCount(XML_Parser);
+PHPAPI const XML_Char *XML_ExpatVersion(void);
+PHPAPI void XML_ParserFree(XML_Parser);
#elif defined(HAVE_LIBEXPAT)
#include <expat.h>