Browse Source

fix handling of && by htmlentities 'no-double-encode'

expand the test cases
experimental/5.2-WITH_DRCP
Nuno Lopes 19 years ago
parent
commit
2c5368c013
  1. 2
      ext/standard/html.c
  2. 13
      ext/standard/tests/strings/htmlentities18.phpt

2
ext/standard/html.c

@ -1154,7 +1154,7 @@ encode_amp:
len += sizeof("&") - 1;
} else {
char *e = memchr(old + i, ';', oldlen - i);
char *s = old + i + 1;
char *s = old + i;
if (!e || (e - s) > 10) { /* minor optimization to avoid "entities" over 10 chars in length */
goto encode_amp;

13
ext/standard/tests/strings/htmlentities18.phpt

@ -9,6 +9,9 @@ $tests = array(
"&; &amp &#a; &9;",
"&kffjadfdhsjfhjasdhffasdfas;",
"&#8787978789",
"&",
"&&&",
"&ab&&",
);
foreach ($tests as $test) {
@ -23,9 +26,15 @@ string(13) "abc&sfdsa"
string(13) "abc&sfdsa"
string(33) "test+s & some more D"
string(33) "test+s & some more D"
string(20) "&; &amp &#a; &9;"
string(20) "&; &amp &#a; &9;"
string(24) "&; &amp &#a; &9;"
string(24) "&; &amp &#a; &9;"
string(32) "&kffjadfdhsjfhjasdhffasdfas;"
string(32) "&kffjadfdhsjfhjasdhffasdfas;"
string(16) "&#8787978789"
string(16) "&#8787978789"
string(5) "&"
string(5) "&"
string(15) "&&&"
string(15) "&&&"
string(17) "&ab&&"
string(17) "&ab&&"
Loading…
Cancel
Save