diff options
author | Rob Richards <rrichards@php.net> | 2005-10-12 13:58:10 +0000 |
---|---|---|
committer | Rob Richards <rrichards@php.net> | 2005-10-12 13:58:10 +0000 |
commit | 25807448134dd3a4caf0a25542a1db5f664ec4c8 (patch) | |
tree | 1b465454abcb38834909f35b1f26adff42892d07 /ext/xml | |
parent | 2bc716c131e357de7cb57b7c1f20339007d6cc83 (diff) | |
download | php-git-25807448134dd3a4caf0a25542a1db5f664ec4c8.tar.gz |
MFH: use spprintf where appropriate
Diffstat (limited to 'ext/xml')
-rw-r--r-- | ext/xml/compat.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/ext/xml/compat.c b/ext/xml/compat.c index 7a945ee0cd..43e116b864 100644 --- a/ext/xml/compat.c +++ b/ext/xml/compat.c @@ -59,12 +59,16 @@ _start_element_handler(void *user, const xmlChar *name, const xmlChar **attribut qualified_name = xmlStrncatNew((xmlChar *)"<", name, xmlStrlen(name)); if (attributes) { while (attributes[attno] != NULL) { - qualified_name = xmlStrncat(qualified_name, (xmlChar *)" ", 1); - qualified_name = xmlStrcat(qualified_name, (xmlChar *)attributes[attno]); - qualified_name = xmlStrncat(qualified_name, (xmlChar *)"=\"", 2); - qualified_name = xmlStrcat(qualified_name, (xmlChar *)attributes[++attno]); - qualified_name = xmlStrncat(qualified_name, (xmlChar *)"\"", 1); - attno++; + int att_len; + char *att_string, *att_name, *att_value; + + att_name = (char *)attributes[attno++]; + att_value = (char *)attributes[attno++]; + + att_len = spprintf(&att_string, 0, " %s=\"%s\"", att_name, att_value); + + qualified_name = xmlStrncat(qualified_name, (xmlChar *)att_string, att_len); + efree(att_string); } } @@ -151,10 +155,11 @@ _end_element_handler(void *user, const xmlChar *name) if (parser->h_end_element == NULL) { if (parser->h_default) { - qualified_name = xmlStrncatNew((xmlChar *)"</", name, xmlStrlen(name)); - qualified_name = xmlStrncat(qualified_name, (xmlChar *)">", 1); - parser->h_default(parser->user, (const XML_Char *) qualified_name, xmlStrlen(qualified_name)); - xmlFree(qualified_name); + char *end_element; + + spprintf(&end_element, 0, "</%s>", (char *)name); + parser->h_default(parser->user, (const XML_Char *) end_element, strlen(end_element)); + efree(end_element); } return; } @@ -205,14 +210,10 @@ _pi_handler(void *user, const xmlChar *target, const xmlChar *data) if (parser->h_pi == NULL) { if (parser->h_default) { - xmlChar *full_pi; - - full_pi = xmlStrncatNew((xmlChar *)"<?", target, xmlStrlen(target)); - full_pi = xmlStrncat(full_pi, (xmlChar *)" ", 1); - full_pi = xmlStrcat(full_pi, data); - full_pi = xmlStrncat(full_pi, (xmlChar *)"?>", 2); + char *full_pi; + spprintf(&full_pi, 0, "<?%s %s?>", (char *)target, (char *)data); parser->h_default(parser->user, (const XML_Char *) full_pi, xmlStrlen(full_pi)); - xmlFree(full_pi); + efree(full_pi); } return; } |