wez Fri Dec 19 11:57:37 2003 EDT Modified files: /php-src/ext/xml compat.c expat_compat.h Log: 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. Index: php-src/ext/xml/compat.c diff -u php-src/ext/xml/compat.c:1.23 php-src/ext/xml/compat.c:1.24 --- php-src/ext/xml/compat.c:1.23 Fri Dec 5 05:53:59 2003 +++ php-src/ext/xml/compat.c Fri Dec 19 11:57:36 2003 @@ -377,13 +377,13 @@ 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 @@ 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 @@ 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 @@ "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 @@ 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 @@ efree(ptr); } -void +PHPAPI void XML_ParserFree(XML_Parser parser) { if (parser->use_namespace) { Index: php-src/ext/xml/expat_compat.h diff -u php-src/ext/xml/expat_compat.h:1.13 php-src/ext/xml/expat_compat.h:1.14 --- php-src/ext/xml/expat_compat.h:1.13 Mon Sep 29 07:35:39 2003 +++ php-src/ext/xml/expat_compat.h Fri Dec 19 11:57:36 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: expat_compat.h,v 1.13 2003/09/29 11:35:39 rrichards Exp $ */ +/* $Id: expat_compat.h,v 1.14 2003/12/19 16:57:36 wez Exp $ */ #ifndef PHP_EXPAT_COMPAT_H #define PHP_EXPAT_COMPAT_H @@ -113,28 +113,29 @@ 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>
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php