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;
"&; & &#a; &9;",
"&kffjadfdhsjfhjasdhffasdfas;",
"�",
+ "&",
+ "&&&",
+ "&ab&&",
);
foreach ($tests as $test) {
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&&"