cvs: php4 /ext/standard html.c

From: Date: Thu, 08 May 2003 15:39:24 +0000
Subject: cvs: php4 /ext/standard html.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-20791@lists.php.net to get a copy of this message
moriyoshi Thu May 8 11:39:24 2003 EDT Modified files: /php4/ext/standard html.c Log: I should have tested more carefully.. Index: php4/ext/standard/html.c diff -u php4/ext/standard/html.c:1.82 php4/ext/standard/html.c:1.83 --- php4/ext/standard/html.c:1.82 Thu May 8 06:42:20 2003 +++ php4/ext/standard/html.c Thu May 8 11:39:24 2003 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: html.c,v 1.82 2003/05/08 10:42:20 moriyoshi Exp $ */ +/* $Id: html.c,v 1.83 2003/05/08 15:39:24 moriyoshi Exp $ */ /* * HTML entity resources: @@ -831,7 +831,8 @@ char *replaced, *ret, *p, *q, *lim, *next; enum entity_charset charset = determine_charset(hint_charset TSRMLS_CC); unsigned char replacement[15]; - + int replacement_len; + ret = estrdup(old); retlen = oldlen; if (!retlen) { @@ -860,6 +861,7 @@ entity_length += 2; /* When we have MBCS entities in the tables above, this will need to handle it */ + replacement_len = 0; switch (charset) { case cs_8859_1: case cs_cp1252: @@ -869,19 +871,19 @@ case cs_cp866: replacement[0] = k; replacement[1] = '\0'; + replacement_len = 1; case cs_big5: case cs_gb2312: case cs_big5hkscs: case cs_sjis: case cs_eucjp: - replacement[0] = (char)((unsigned int)k >> 8); - replacement[1] = (k & 0xff); - replacement[2] = '\0'; - break; + /* we cannot properly handle those multibyte encodings + * with php_str_to_str. skip it. */ + continue; case cs_utf_8: - php_utf32_utf8(replacement, k); + replacement_len = php_utf32_utf8(replacement, k); break; default: @@ -889,7 +891,7 @@ return 0; } - replaced = php_str_to_str(ret, retlen, entity, entity_length, replacement, 1, &retlen); + replaced = php_str_to_str(ret, retlen, entity, entity_length, replacement, replacement_len, &retlen); efree(ret); ret = replaced; }

« previous php.cvs (#20791) next »