diff --git a/Src/HTMLRenderer.HC b/Src/HTMLRenderer.HC
index 17d4775..1143a1b 100644
--- a/Src/HTMLRenderer.HC
+++ b/Src/HTMLRenderer.HC
@@ -74,7 +74,9 @@ U0 @calculate_indents_for_sprites(CDoc *haystack_doc) {
}
}
-U0 @sanitize_node_text(U8 *text) {
+U8 *@sanitize_node_text(U8 *text) {
+ U8 *return_text = text;
+ U8 *old_text = text;
while (*text) {
switch (*text) {
case 0x11:
@@ -83,11 +85,25 @@ U0 @sanitize_node_text(U8 *text) {
case 0x12:
*text = '<';
break;
+ case 0x24: // dollar sign
+ return_text = CAlloc(StrLen(old_text) + 1);
+ StrCpy(return_text, old_text);
+ StrCpy(return_text + (text - old_text) + 1, text);
+ Free(old_text);
+ break;
+ case 0xe2:
+ if (*(text + 1)(U8 *) == 0x80 &&
+ *(text + 2)(U8 *) == 0x99) { // Single-quote
+ *text = '\'';
+ StrCpy(text + 1, text + 3);
+ }
+ break;
default:
break;
}
text++;
}
+ return return_text;
}
U0 NavigateTo(CDoc *doc, U8 *url) {
@@ -137,7 +153,7 @@ U0 @render_node_tree(CDoc *render_doc, CDoc *doc, Node *node) {
}
if (!StrICmp(node->tagName, "InternalTextNode")) {
- @sanitize_node_text(node->text);
+ node->text = @sanitize_node_text(node->text);
if (StrICmp(node->parentNode->tagName, "option") &&
StrICmp(node->parentNode->tagName, "script") &&
StrICmp(node->parentNode->tagName, "style") &&