NetSurf
Functions
forms.c File Reference

HTML form handling implementation. More...

#include <string.h>
#include "utils/config.h"
#include "utils/corestrings.h"
#include "utils/log.h"
#include "html/form_internal.h"
#include "html/private.h"
Include dependency graph for forms.c:

Go to the source code of this file.

Functions

static struct formparse_form_element (const char *docenc, dom_node *node)
 process form element from dom More...
 
struct formhtml_forms_get_forms (const char *docenc, dom_html_document *doc)
 
static struct formfind_form (struct form *forms, dom_html_form_element *form)
 
static struct form_controlparse_button_element (struct form *forms, dom_html_button_element *button)
 
static struct form_controlparse_input_element (struct form *forms, dom_html_input_element *input)
 
static struct form_controlparse_textarea_element (struct form *forms, dom_html_text_area_element *ta)
 
static struct form_controlparse_select_element (struct form *forms, dom_html_select_element *select)
 
static struct form_controlinvent_fake_gadget (dom_node *node)
 
struct form_controlhtml_forms_get_control_for_node (struct form *forms, dom_node *node)
 

Detailed Description

HTML form handling implementation.

Definition in file forms.c.

Function Documentation

◆ find_form()

static struct form * find_form ( struct form forms,
dom_html_form_element *  form 
)
static

Definition at line 176 of file forms.c.

References form::node, and form::prev.

Referenced by parse_button_element(), parse_input_element(), parse_select_element(), and parse_textarea_element().

Here is the caller graph for this function:

◆ html_forms_get_control_for_node()

struct form_control * html_forms_get_control_for_node ( struct form forms,
dom_node *  node 
)

Definition at line 545 of file forms.c.

References form::controls, invent_fake_gadget(), form_control::next, form_control::node, parse_button_element(), parse_input_element(), parse_select_element(), parse_textarea_element(), and form::prev.

Referenced by box_button(), box_input(), box_select(), and box_textarea().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ html_forms_get_forms()

struct form * html_forms_get_forms ( const char *  docenc,
dom_html_document *  doc 
)

Definition at line 126 of file forms.c.

References form::node, parse_form_element(), and form::prev.

Referenced by html_begin_conversion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ invent_fake_gadget()

static struct form_control * invent_fake_gadget ( dom_node *  node)
static

Definition at line 526 of file forms.c.

References form_free_control(), form_new_control(), GADGET_HIDDEN, form_control::initial_value, form_control::name, form_control::node, and form_control::value.

Referenced by html_forms_get_control_for_node().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_button_element()

static struct form_control * parse_button_element ( struct form forms,
dom_html_button_element *  button 
)
static

Definition at line 188 of file forms.c.

References find_form(), form_add_control(), form_free_control(), form_new_control(), GADGET_BUTTON, GADGET_RESET, GADGET_SUBMIT, form_control::name, strndup(), and form_control::value.

Referenced by html_forms_get_control_for_node().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_form_element()

static struct form * parse_form_element ( const char *  docenc,
dom_node *  node 
)
static

process form element from dom

Definition at line 37 of file forms.c.

References form::action, form_new(), form::method, method_GET, method_POST_MULTIPART, method_POST_URLENC, form::node, strndup(), and form::target.

Referenced by html_forms_get_forms().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_input_element()

static struct form_control * parse_input_element ( struct form forms,
dom_html_input_element *  input 
)
static

Definition at line 270 of file forms.c.

References find_form(), form_add_control(), form_free_control(), form_gadget_sync_with_dom(), form_new_control(), GADGET_BUTTON, GADGET_CHECKBOX, GADGET_FILE, GADGET_HIDDEN, GADGET_IMAGE, GADGET_PASSWORD, GADGET_RADIO, GADGET_RESET, GADGET_SUBMIT, GADGET_TEXTBOX, form_control::initial_value, form_control::last_synced_value, form_control::length, form_control::maxlength, form_control::name, form_control::node_value, form_control::selected, strndup(), form_control::type, and form_control::value.

Referenced by html_forms_get_control_for_node().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_select_element()

static struct form_control * parse_select_element ( struct form forms,
dom_html_select_element *  select 
)
static

Definition at line 476 of file forms.c.

References form_control::data, find_form(), form_add_control(), form_new_control(), GADGET_SELECT, form_control::name, form_control::select, and strndup().

Referenced by html_forms_get_control_for_node().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_textarea_element()

static struct form_control * parse_textarea_element ( struct form forms,
dom_html_text_area_element *  ta 
)
static

Definition at line 430 of file forms.c.

References find_form(), form_add_control(), form_new_control(), GADGET_TEXTAREA, form_control::name, strndup(), and form_control::ta.

Referenced by html_forms_get_control_for_node().

Here is the call graph for this function:
Here is the caller graph for this function: