diff options
Diffstat (limited to 'source/myhtml/serialization.c')
-rwxr-xr-x[-rw-r--r--] | source/myhtml/serialization.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/source/myhtml/serialization.c b/source/myhtml/serialization.c index ef76b94..9685cd0 100644..100755 --- a/source/myhtml/serialization.c +++ b/source/myhtml/serialization.c @@ -269,9 +269,15 @@ void myhtml_serialization_append(const char *data, size_t size, myhtml_callback_ notwritten = 0; break; case 0xA0: - if (notwritten) callback(data + i - notwritten, notwritten, ptr); - callback(" ", 6, ptr); - notwritten = 0; + if(i > 0 && (unsigned char)(data[(i - 1)]) == 0xC2) { + if (notwritten) callback(data + i - notwritten, (notwritten - 1), ptr); + callback(" ", 6, ptr); + notwritten = 0; + } + else { + ++notwritten; + } + break; default: ++notwritten; @@ -308,9 +314,15 @@ void myhtml_serialization_append_attr(const char* data, size_t size, myhtml_call notwritten = 0; break; case 0xA0: - if (notwritten) callback(data + i - notwritten, notwritten, ptr); - callback(" ", 6, ptr); - notwritten = 0; + if(i > 0 && (unsigned char)(data[(i - 1)]) == 0xC2) { + if (notwritten) callback(data + i - notwritten, (notwritten - 1), ptr); + callback(" ", 6, ptr); + notwritten = 0; + } + else { + ++notwritten; + } + break; default: ++notwritten; |