RE: [PHP-CVS] cvs: php-src /ext/soap php_encoding.c
| From: | Dmitry Stogov | Date: | Wed, 08 Sep 2004 05:25:29 +0000 |
| Subject: | RE: [PHP-CVS] cvs: php-src /ext/soap php_encoding.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-28589@lists.php.net to get a copy of this message | ||
Hi,
I think, you are right.
I will add them.
Thanks. Dmitry.
> -----Original Message-----
> From: Marcus Boerger [mailto:helly@php.net]
> Sent: Tuesday, September 07, 2004 22:46
> To: Dmitry Stogov
> Cc: php-cvs@lists.php.net
> Subject: Re: [PHP-CVS] cvs: php-src /ext/soap php_encoding.c
>
>
> Hello Dmitry,
>
> that's missing a few lines:
>
> } else if ((c & 0xfc) == 0xf8) {
> if ((s[i++] & 0xc0) != 0x80 ||
> (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++]
> & 0xc0) != 0x80) {
> return 0;
> }
> } else if ((c & 0xfe) == 0xfc) {
> if ((s[i++] & 0xc0) != 0x80 ||
> (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++]
> & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80) {
> return 0;
> }
>
> regards
> marcus
>
>
> Tuesday, September 7, 2004, 4:34:46 PM, you wrote:
>
> > dmitry Tue Sep 7 10:34:46 2004 EDT
>
> > Modified files:
> > /php-src/ext/soap php_encoding.c
> > Log:
> > Make ext/soap work around libxml2 bug in xmlCheckUTF8
> (2.6.7-2.6.13)
>
>
> >
>
> http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.74&r2
> > =1.75&ty=u
> > Index: php-src/ext/soap/php_encoding.c
> > diff -u php-src/ext/soap/php_encoding.c:1.74
> > php-src/ext/soap/php_encoding.c:1.75
> > --- php-src/ext/soap/php_encoding.c:1.74 Thu Aug 26 14:40:10 2004
> > +++ php-src/ext/soap/php_encoding.c Tue Sep 7 10:34:46 2004
> > @@ -17,7 +17,7 @@
> > | Dmitry Stogov <dmitry@zend.com>
>
> >
> >
> +-------------------------------------------------------------
> ---------+
> > */
> > -/* $Id: php_encoding.c,v 1.74 2004/08/26 18:40:10 dmitry Exp $ */
> > +/* $Id: php_encoding.c,v 1.75 2004/09/07 14:34:46 dmitry Exp $ */
>
> > #include <time.h>
>
> > @@ -581,6 +581,32 @@
> > 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;
> > @@ -612,12 +638,12 @@
> > efree(str);
> > str = estrdup(xmlBufferContent(out));
> > new_len = n;
> > - } else if (!xmlCheckUTF8(str)) {
> > + } else if (!php_soap_xmlCheckUTF8(str)) {
> > soap_error1(E_ERROR, "Encoding: string
> '%s' is not a valid utf-8 string", str);
> > }
> > xmlBufferFree(out);
> > xmlBufferFree(in);
> > - } else if (!xmlCheckUTF8(str)) {
> > + } else if (!php_soap_xmlCheckUTF8(str)) {
> > soap_error1(E_ERROR, "Encoding: string '%s' is
> not a valid utf-8 string", str);
> > }
>
>
>
>
>
> --
> Best regards,
> Marcus mailto:helly@php.net
>
>