From: Wez Furlong Date: Fri, 19 Dec 2003 16:57:36 +0000 (+0000) Subject: Export expat compat functions. X-Git-Tag: php-5.0.0b3RC2~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=06f448cf61b5dc1138d8e7620395b9d30a60a6cd;p=php 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. --- 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