diff options
author | John-Mark Bell <jmb@netsurf-browser.org> | 2016-02-01 20:14:34 +0000 |
---|---|---|
committer | John-Mark Bell <jmb@netsurf-browser.org> | 2016-02-01 20:14:34 +0000 |
commit | 66e9aa8d66aae27098693554d26100417606164b (patch) | |
tree | affd18b5ffc14f2742e7cb1ab8c5da80cbbd9bf7 /src/duk-libdom-generated.c | |
parent | b0b8fe9acf002cbfeb68873cac6e01345e173fa8 (diff) | |
download | nsgenbind-66e9aa8d66aae27098693554d26100417606164b.tar.gz nsgenbind-66e9aa8d66aae27098693554d26100417606164b.tar.bz2 |
Add support for TreatNullAs=EmptyString extended attribute.
Diffstat (limited to 'src/duk-libdom-generated.c')
-rw-r--r-- | src/duk-libdom-generated.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/duk-libdom-generated.c b/src/duk-libdom-generated.c index 0790e00..9305dcf 100644 --- a/src/duk-libdom-generated.c +++ b/src/duk-libdom-generated.c @@ -262,8 +262,21 @@ output_generated_attribute_setter(FILE* outf, "\tdom_exception exc;\n" "\tdom_string *str;\n" "\tduk_size_t slen;\n" - "\tconst char *s;\n" - "\ts = duk_safe_to_lstring(ctx, 0, &slen);\n" + "\tconst char *s;\n"); + if ((atributee->treatnullas != NULL) && + (strcmp(atributee->treatnullas, "EmptyString") == 0)) { + fprintf(outf, + "\tif (duk_is_null(ctx, 0)) {\n" + "\t\ts = \"\";\n" + "\t\tslen = 0;\n" + "\t} else {\n" + "\t\ts = duk_safe_to_lstring(ctx, 0, &slen);\n" + "\t}\n"); + } else { + fprintf(outf, + "\ts = duk_safe_to_lstring(ctx, 0, &slen);\n"); + } + fprintf(outf, "\n" "\texc = dom_string_create((const uint8_t *)s, slen, &str);\n" "\tif (exc != DOM_NO_ERR) {\n" |