Index: compat.c =================================================================== RCS file: /repository/php-src/ext/xml/compat.c,v retrieving revision 1.33 diff -r1.33 compat.c 78c78,87 < --- > /* > Namespace handler teesting > if (nb_namespaces > 0 && parser->h_start_ns != NULL) { > for (i = 0; i < nb_namespaces; i += 1) { > parser->h_start_ns(parser->user, (const XML_Char *) namespaces[y], (const XML_Char *) namespaces[y+1]); > y += 2; > } > y = 0; > } > */ 250,251c259,260 < static xmlEntityPtr < _get_entity(void *user, const xmlChar *name) --- > static void > _external_entity_ref_handler(void *user, const xmlChar *names, int type, const xmlChar *sys_id, const xmlChar *pub_id, xmlChar *content) 255,261c264,265 < if (parser->h_default) { < xmlChar *entity; < int len; < < _build_entity(name, xmlStrlen(name), &entity, &len); < parser->h_default(parser->user, (const xmlChar *) entity, len); < xmlFree(entity); --- > if (parser->h_external_entity_ref == NULL) { > return; 264c268 < return NULL; --- > parser->h_external_entity_ref(parser, names, "", sys_id, pub_id); 267,268c271,272 < static void < _external_entity_ref_handler(void *user, const xmlChar *names, int type, const xmlChar *sys_id, const xmlChar *pub_id, xmlChar *content) --- > static xmlEntityPtr > _get_entity(void *user, const xmlChar *name) 270a275 > xmlEntityPtr ret; 272,273c277,297 < if (parser->h_external_entity_ref == NULL) { < return; --- > if (parser->parser->inSubset == 0) { > ret = xmlGetPredefinedEntity(name); > if (ret == NULL) > ret = xmlGetDocEntity(parser->parser->myDoc, name); > } > > if (parser->parser->instate != XML_PARSER_ENTITY_VALUE && parser->parser->instate != XML_PARSER_ATTRIBUTE_VALUE && parser->h_default) { > if (ret == NULL || ret->etype == XML_INTERNAL_GENERAL_ENTITY || ret->etype == XML_INTERNAL_PARAMETER_ENTITY || ret->etype == XML_INTERNAL_PREDEFINED_ENTITY) { > if (parser->h_default) { > xmlChar *entity; > int len; > > _build_entity(name, xmlStrlen(name), &entity, &len); > parser->h_default(parser->user, (const xmlChar *) entity, len); > xmlFree(entity); > } > } else { > if (ret->etype == XML_EXTERNAL_GENERAL_PARSED_ENTITY) { > _external_entity_ref_handler(user, ret->name, ret->etype, ret->SystemID, ret->ExternalID, NULL); > } > } 276c300 < parser->h_external_entity_ref(parser, names, "", sys_id, pub_id); --- > return ret; 287c311 < _external_entity_ref_handler, /* entityDecl */ --- > NULL, /* entityDecl */ 354a379 > parser->parser->wellFormed = 0;