summaryrefslogtreecommitdiff
path: root/render/hubbub_binding.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2009-02-20 12:50:34 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2009-02-20 12:50:34 +0000
commit1f859400d962270ba418530e3a147004b4545963 (patch)
tree48a05d744ce6c778b80d60e2012333fbb13317ee /render/hubbub_binding.c
parent8bebcb5ca9d2760ff410a4c415a4f599ba9128fc (diff)
downloadnetsurf-1f859400d962270ba418530e3a147004b4545963.tar.gz
netsurf-1f859400d962270ba418530e3a147004b4545963.tar.bz2
If we have no document charset on completion of parse, retrieve it from the binding.
Make the binding return Windows-1252 if it has no idea (as this is what the parser will have defaulted to). Fix form_new to not require a document charset to be present -- it may not be known at this point. Fixup form document charsets post-parse, so that form submission works correctly. svn path=/trunk/netsurf/; revision=6575
Diffstat (limited to 'render/hubbub_binding.c')
-rw-r--r--render/hubbub_binding.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/render/hubbub_binding.c b/render/hubbub_binding.c
index 79a3dba0f..b674d011c 100644
--- a/render/hubbub_binding.c
+++ b/render/hubbub_binding.c
@@ -139,7 +139,8 @@ binding_error binding_create_tree(void *arena, const char *charset, void **ctx)
c->parser = NULL;
c->encoding = charset;
- c->encoding_source = ENCODING_SOURCE_HEADER;
+ c->encoding_source = charset != NULL ? ENCODING_SOURCE_HEADER
+ : ENCODING_SOURCE_DETECTED;
c->document = NULL;
c->owns_doc = true;
c->forms = NULL;
@@ -232,7 +233,7 @@ const char *binding_get_encoding(void *ctx, binding_encoding_source *source)
*source = c->encoding_source;
- return c->encoding;
+ return c->encoding != NULL ? c->encoding : "Windows-1252";
}
xmlDocPtr binding_get_document(void *ctx)