CVS update: php3/functions

From: Date: Tue, 27 Oct 1998 19:56:42 +0000
Subject: CVS update: php3/functions
Groups: php.dev 
Request: Send a blank email to php-dev+get-2043@lists.php.net to get a copy of this message
Date: Tuesday October 27, 1998 @ 14:56 Author: ssb Update of /repository/php3/functions In directory asf:/u2/tmp/cvs-serv10207/functions Modified Files: xml.c php3_xml.h Log Message: XML encoding support Index: php3/functions/xml.c diff -c php3/functions/xml.c:1.10 php3/functions/xml.c:1.11 *** php3/functions/xml.c:1.10 Sat Oct 24 01:48:13 1998 --- php3/functions/xml.c Tue Oct 27 14:56:41 1998 *************** *** 27,33 **** +----------------------------------------------------------------------+ */ ! /* $Id: xml.c,v 1.10 1998/10/24 05:48:13 eschmid Exp $ */ #define IS_EXT_MODULE #if COMPILE_DL # if PHP_31 --- 27,33 ---- +----------------------------------------------------------------------+ */ ! /* $Id: xml.c,v 1.11 1998/10/27 19:56:41 ssb Exp $ */ #define IS_EXT_MODULE #if COMPILE_DL # if PHP_31 *************** *** 191,196 **** --- 191,198 ---- XML_GLOBAL(php3_xml_module).le_xml_parser = register_list_destructors(xml_destroy_parser, NULL); + XML_GLOBAL(php3_xml_module).default_encoding = "ISO-8859-1"; + REGISTER_LONG_CONSTANT("XML_ERROR_NONE", XML_ERROR_NONE, CONST_CS|CONST_PERSISTENT); REGISTER_LONG_CONSTANT("XML_ERROR_NO_MEMORY", XML_ERROR_NO_MEMORY, CONST_CS|CONST_PERSISTENT); REGISTER_LONG_CONSTANT("XML_ERROR_SYNTAX", XML_ERROR_SYNTAX, CONST_CS|CONST_PERSISTENT); *************** *** 695,714 **** /************************* EXTENSION FUNCTIONS *************************/ ! /* {{{ int Xml_Parser_Create() */ PHP_FUNCTION(xml_parser_create) { xml_parser *parser; ! int id; XML_TLS_VARS; ! if (ARG_COUNT(ht) != 0) { WRONG_PARAM_COUNT; } parser = ecalloc(sizeof(xml_parser), 1); ! parser->parser = XML_ParserCreate(NULL); XML_SetUserData(parser->parser, parser); XML_SetElementHandler(parser->parser, php3i_xml_startElementHandler, php3i_xml_endElementHandler); XML_SetCharacterDataHandler(parser->parser, php3i_xml_characterDataHandler); --- 697,741 ---- /************************* EXTENSION FUNCTIONS *************************/ ! /* {{{ int xml_parser_create() */ PHP_FUNCTION(xml_parser_create) { xml_parser *parser; ! int id, argc; ! pval *encodingArg = NULL; ! XML_Char *encoding; ! char thisfunc[] = "xml_parser_create"; XML_TLS_VARS; + + argc = ARG_COUNT(ht); ! if (argc > 1 || getParameters(ht, argc, &encodingArg) == FAILURE) { WRONG_PARAM_COUNT; } + if (argc == 1) { + convert_to_string(encodingArg); + if (strncasecmp(encodingArg->value.str.val, "ISO-8859-1", + encodingArg->value.str.len) == 0) { + encoding = "ISO-8859-1"; + } else if (strncasecmp(encodingArg->value.str.val, "UTF-8", + encodingArg->value.str.len) == 0) { + encoding = "UTF-8"; + } else if (strncasecmp(encodingArg->value.str.val, "US-ASCII", + encodingArg->value.str.len) == 0) { + encoding = "US-ASCII"; + } else if (strncasecmp(encodingArg->value.str.val, "UTF-16", + encodingArg->value.str.len) == 0) { + php3_error(E_WARNING, "%s: unsupported encoding", thisfunc); + RETURN_FALSE; + } + } else { + encoding = XML_GLOBAL(php3_xml_module).default_encoding; + } + parser = ecalloc(sizeof(xml_parser), 1); ! parser->parser = XML_ParserCreate(encoding); XML_SetUserData(parser->parser, parser); XML_SetElementHandler(parser->parser, php3i_xml_startElementHandler, php3i_xml_endElementHandler); XML_SetCharacterDataHandler(parser->parser, php3i_xml_characterDataHandler); *************** *** 718,724 **** XML_SetNotationDeclHandler(parser->parser, php3i_xml_notationDeclHandler); XML_SetExternalEntityRefHandler(parser->parser, php3i_xml_externalEntityRefHandler); id = php3_list_insert(parser, XML_GLOBAL(php3_xml_module).le_xml_parser); ! parser = xml_get_parser(id, "xml_parser_create", list); parser->index = id; parser->case_folding = 1; --- 745,751 ---- XML_SetNotationDeclHandler(parser->parser, php3i_xml_notationDeclHandler); XML_SetExternalEntityRefHandler(parser->parser, php3i_xml_externalEntityRefHandler); id = php3_list_insert(parser, XML_GLOBAL(php3_xml_module).le_xml_parser); ! parser = xml_get_parser(id, thisfunc, list); parser->index = id; parser->case_folding = 1; Index: php3/functions/php3_xml.h diff -c php3/functions/php3_xml.h:1.4 php3/functions/php3_xml.h:1.5 *** php3/functions/php3_xml.h:1.4 Fri Oct 23 07:18:23 1998 --- php3/functions/php3_xml.h Tue Oct 27 14:56:41 1998 *************** *** 39,44 **** --- 39,45 ---- typedef struct { int le_xml_parser; + XML_Char *default_encoding; } xml_module; typedef struct { -- PHP Development Mailing List http://www.php.net/ To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net For help: php-dev-help@lists.php.net

« previous php.dev (#2043) next »