Mostly HTML generation and parsing enhancements:
- HTMLparser.[ch] testHTML.c: applied the second set of
patches from Wayne Davison <wayned@blorf.net>, adding
htmlEncodeEntities()
- HTMLparser.c: fixed an ignorable white space detection bug
occuring when parsing with SAX only
- result/HTML/*.sax: updated since the output is now HTML
encoded...
Daniel.
diff --git a/testHTML.c b/testHTML.c
index f998072..af088b5 100644
--- a/testHTML.c
+++ b/testHTML.c
@@ -368,8 +368,19 @@
if (atts != NULL) {
for (i = 0;(atts[i] != NULL);i++) {
fprintf(stdout, ", %s", atts[i++]);
- if (atts[i] != NULL)
- fprintf(stdout, "='%s'", atts[i]);
+ if (atts[i] != NULL) {
+ unsigned char output[40];
+ const unsigned char *att = atts[i];
+ int outlen, attlen;
+ fprintf(stdout, "='");
+ while ((attlen = strlen((char*)att)) > 0) {
+ outlen = sizeof output - 1;
+ htmlEncodeEntities(output, &outlen, att, &attlen, '\'');
+ fprintf(stdout, "%.*s", outlen, output);
+ att += attlen;
+ }
+ fprintf(stdout, "'");
+ }
}
}
fprintf(stdout, ")\n");
@@ -400,12 +411,11 @@
void
charactersDebug(void *ctx, const xmlChar *ch, int len)
{
- char output[40];
- int i;
+ unsigned char output[40];
+ int outlen = 30;
- for (i = 0;(i<len) && (i < 30);i++)
- output[i] = ch[i];
- output[i] = 0;
+ htmlEncodeEntities(output, &outlen, ch, &len, 0);
+ output[outlen] = 0;
fprintf(stdout, "SAX.characters(%s, %d)\n", output, len);
}