From 18079dd248dec4e9081c85e66882f878cf64da8f Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 10 Sep 2004 09:00:32 +0000 Subject: [PATCH] Using php_libxml_xmlCheckUTF8() from ext/libxml. --- ext/soap/php_encoding.c | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) 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); } -- 2.40.0