} else {
if (*s == '#') { /* numeric entities */
s++;
- while (s < e) {
- if (!isdigit(*s++)) {
- goto encode_amp;
+ /* Hex (Z) */
+ if (*s == 'x' || *s == 'X') {
+ s++;
+ while (s < e) {
+ if (!isxdigit(*s++)) {
+ goto encode_amp;
+ }
+ }
+ /* Dec (Z)*/
+ } else {
+ while (s < e) {
+ if (!isdigit(*s++)) {
+ goto encode_amp;
+ }
}
}
} else { /* text entities */
"abc",
"abc&sfdsa",
"test+s & some more D",
- "&; & &#a; &9;",
+ "test+s & some more D",
+ "&; & &#a; &9; &#xyz;",
"&kffjadfdhsjfhjasdhffasdfas;",
"�",
"&",
unicode(13) "abc&sfdsa"
unicode(33) "test+s & some more D"
unicode(33) "test+s & some more D"
-unicode(24) "&; &amp &#a; &9;"
-unicode(24) "&; &amp &#a; &9;"
+unicode(34) "test+s & some more D"
+unicode(34) "test+s & some more D"
+unicode(35) "&; &amp &#a; &9; &#xyz;"
+unicode(35) "&; &amp &#a; &9; &#xyz;"
unicode(32) "&kffjadfdhsjfhjasdhffasdfas;"
unicode(32) "&kffjadfdhsjfhjasdhffasdfas;"
unicode(16) "&#8787978789"