From 3e549fde3eb07bf9bc696a701035de29d8b2cd96 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sat, 8 Sep 2012 15:59:55 +0100 Subject: [PATCH] Update to use latest libdom. Fixes handling of text input with no maxlength set. --- render/form.c | 3 --- render/html_forms.c | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/render/form.c b/render/form.c index f0596b3d2..05d4042a2 100644 --- a/render/form.c +++ b/render/form.c @@ -200,9 +200,6 @@ struct form_control *form_new_control(void *node, form_control_type type) control->node = node; control->type = type; - /* Default max length of input to something insane */ - control->maxlength = UINT_MAX; - return control; } diff --git a/render/html_forms.c b/render/html_forms.c index fc2bcaf8a..f5c6600cd 100644 --- a/render/html_forms.c +++ b/render/html_forms.c @@ -332,10 +332,21 @@ parse_input_element(struct form *forms, dom_html_input_element *input) if (control->type == GADGET_PASSWORD || control->type == GADGET_TEXTBOX) { - unsigned long maxlength; + long maxlength; if (dom_html_input_element_get_max_length( - input, &maxlength) == DOM_NO_ERR) { + input, &maxlength) != DOM_NO_ERR) { + maxlength = -1; + } + + if (maxlength >= 0) { + /* Got valid maxlength */ control->maxlength = maxlength; + } else { + /* Input has no maxlength attr, or + * dom_html_input_element_get_max_length failed. + * + * Set it to something insane. */ + control->maxlength = UINT_MAX; } }