From: Dmitry Stogov Date: Fri, 10 Sep 2004 08:59:45 +0000 (+0000) Subject: Using php_libxml_xmlCheckUTF8() from ext/libxml. X-Git-Tag: PRE_NEW_VM_GEN_PATCH~335 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f93560ddc922a8e255084733f8d627cd3372f27e;p=php Using php_libxml_xmlCheckUTF8() from ext/libxml. --- diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index d107d7ff5d..72f6c73c8a 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -22,6 +22,7 @@ #include #include "php_soap.h" +#include "ext/libxml/php_libxml.h" /* zval type decode */ static zval *to_zval_double(encodeTypePtr type, xmlNodePtr data); @@ -581,32 +582,6 @@ static zval *to_zval_stringb(encodeTypePtr type, xmlNodePtr data) return ret; } -static int php_soap_xmlCheckUTF8(const unsigned char *s) -{ - int i; - unsigned char c; - - for (i = 0; (c = s[i++]);) { - if ((c & 0x80) == 0) { - } else if ((c & 0xe0) == 0xc0) { - if ((s[i++] & 0xc0) != 0x80) { - return 0; - } - } else if ((c & 0xf0) == 0xe0) { - if ((s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80) { - return 0; - } - } else if ((c & 0xf8) == 0xf0) { - if ((s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80) { - return 0; - } - } else { - return 0; - } - } - return 1; -} - static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) { xmlNodePtr ret; @@ -638,12 +613,12 @@ static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNo efree(str); str = estrdup(xmlBufferContent(out)); new_len = n; - } else if (!php_soap_xmlCheckUTF8(str)) { + } else if (!php_libxml_xmlCheckUTF8(str)) { soap_error1(E_ERROR, "Encoding: string '%s' is not a valid utf-8 string", str); } xmlBufferFree(out); xmlBufferFree(in); - } else if (!php_soap_xmlCheckUTF8(str)) { + } else if (!php_libxml_xmlCheckUTF8(str)) { soap_error1(E_ERROR, "Encoding: string '%s' is not a valid utf-8 string", str); }