From 15a7069feab56a36dbf96a514ec3339f6a2dd342 Mon Sep 17 00:00:00 2001 From: Laurent MONIN Date: Sun, 4 Dec 2005 18:25:23 +0100 Subject: [PATCH] Move code from html_input() to new html_input_format(). --- src/document/html/parser/forms.c | 136 +++++++++++++++++-------------- 1 file changed, 75 insertions(+), 61 deletions(-) diff --git a/src/document/html/parser/forms.c b/src/document/html/parser/forms.c index 0d88a8208..2338bea93 100644 --- a/src/document/html/parser/forms.c +++ b/src/document/html/parser/forms.c @@ -187,11 +187,83 @@ no_type_attr: format.style.attr |= AT_BOLD; } +static void +html_input_format(struct html_context *html_context, unsigned char *a, + struct form_control *fc) +{ + put_chrs(html_context, " ", 1); + html_stack_dup(html_context, ELEMENT_KILLABLE); + html_focusable(html_context, a); + format.form = fc; + if (format.title) mem_free(format.title); + format.title = get_attr_val(a, "title", html_context->options); + switch (fc->type) { + case FC_TEXT: + case FC_PASSWORD: + case FC_FILE: + { + int i; + + format.style.attr |= AT_BOLD; + for (i = 0; i < fc->size; i++) + put_chrs(html_context, "_", 1); + break; + } + case FC_CHECKBOX: + format.style.attr |= AT_BOLD; + put_chrs(html_context, "[ ]", 8); + break; + case FC_RADIO: + format.style.attr |= AT_BOLD; + put_chrs(html_context, "( )", 8); + break; + case FC_IMAGE: + { + unsigned char *al; + + mem_free_set(&format.image, NULL); + al = get_url_val(a, "src", html_context->options); + if (!al) + al = get_url_val(a, "dynsrc", + html_context->options); + if (al) { + format.image = join_urls(html_context->base_href, al); + mem_free(al); + } + format.style.attr |= AT_BOLD; + put_chrs(html_context, "[ ", 7); + if (fc->alt) + put_chrs(html_context, fc->alt, strlen(fc->alt)); + else if (fc->name) + put_chrs(html_context, fc->name, strlen(fc->name)); + else + put_chrs(html_context, "Submit", 6); + + put_chrs(html_context, " ]", 7); + break; + } + case FC_SUBMIT: + case FC_RESET: + case FC_BUTTON: + format.style.attr |= AT_BOLD; + put_chrs(html_context, "[ ", 7); + if (fc->default_value) + put_chrs(html_context, fc->default_value, strlen(fc->default_value)); + put_chrs(html_context, " ]", 7); + break; + case FC_TEXTAREA: + case FC_SELECT: + case FC_HIDDEN: + INTERNAL("bad control type"); + } + kill_html_stack_item(html_context, &html_top); + put_chrs(html_context, " ", 1); +} + void html_input(struct html_context *html_context, unsigned char *a, unsigned char *xxx3, unsigned char *xxx4, unsigned char **xxx5) { - int i; unsigned char *al; struct form_control *fc; @@ -245,69 +317,11 @@ html_input(struct html_context *html_context, unsigned char *a, html_context->options); if (fc->type == FC_IMAGE) fc->alt = get_attr_val(a, "alt", html_context->options); - if (fc->type == FC_HIDDEN) goto hid; - put_chrs(html_context, " ", 1); - html_stack_dup(html_context, ELEMENT_KILLABLE); - html_focusable(html_context, a); - format.form = fc; - if (format.title) mem_free(format.title); - format.title = get_attr_val(a, "title", html_context->options); - switch (fc->type) { - case FC_TEXT: - case FC_PASSWORD: - case FC_FILE: - format.style.attr |= AT_BOLD; - for (i = 0; i < fc->size; i++) - put_chrs(html_context, "_", 1); - break; - case FC_CHECKBOX: - format.style.attr |= AT_BOLD; - put_chrs(html_context, "[ ]", 8); - break; - case FC_RADIO: - format.style.attr |= AT_BOLD; - put_chrs(html_context, "( )", 8); - break; - case FC_IMAGE: - mem_free_set(&format.image, NULL); - al = get_url_val(a, "src", html_context->options); - if (!al) - al = get_url_val(a, "dynsrc", - html_context->options); - if (al) { - format.image = join_urls(html_context->base_href, al); - mem_free(al); - } - format.style.attr |= AT_BOLD; - put_chrs(html_context, "[ ", 7); - if (fc->alt) - put_chrs(html_context, fc->alt, strlen(fc->alt)); - else if (fc->name) - put_chrs(html_context, fc->name, strlen(fc->name)); - else - put_chrs(html_context, "Submit", 6); - - put_chrs(html_context, " ]", 7); - break; - case FC_SUBMIT: - case FC_RESET: - case FC_BUTTON: - format.style.attr |= AT_BOLD; - put_chrs(html_context, "[ ", 7); - if (fc->default_value) - put_chrs(html_context, fc->default_value, strlen(fc->default_value)); - put_chrs(html_context, " ]", 7); - break; - case FC_TEXTAREA: - case FC_SELECT: - case FC_HIDDEN: - INTERNAL("bad control type"); + if (fc->type != FC_HIDDEN) { + html_input_format(html_context, a, fc); } - kill_html_stack_item(html_context, &html_top); - put_chrs(html_context, " ", 1); -hid: html_context->special_f(html_context, SP_CONTROL, fc); }