From d376591aca752d51b6631d9381da20f619c90964 Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Fri, 10 Oct 2025 12:58:02 -0400 Subject: [PATCH] Applications/Internet/Cyberia: Handle INPUT type=hidden in forms --- Applications/Internet/Cyberia.app/Cyberia.HC | 30 ++++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/Applications/Internet/Cyberia.app/Cyberia.HC b/Applications/Internet/Cyberia.app/Cyberia.HC index 57dcd8e..85798d6 100644 --- a/Applications/Internet/Cyberia.app/Cyberia.HC +++ b/Applications/Internet/Cyberia.app/Cyberia.HC @@ -269,19 +269,25 @@ U0 @cyberia_form_submit(@html_dom_node* form_node) U8* encoded_value = NULL; I64 encoded_value_length = 0; Widget* element_gui_widget = element_node->attributes->@("cyberiaGuiWidget"); - switch (element_gui_widget->type) { - case WIDGET_TYPE_CHECKBOX: - if (element_gui_widget(CheckBoxWidget*)->checked) { - raw_value = @t(element_node->attributes->@("value"), element_node->attributes->@("value"), "on"); - } else { - raw_value = NULL; + if (element_gui_widget) { + switch (element_gui_widget->type) { + case WIDGET_TYPE_CHECKBOX: + if (element_gui_widget(CheckBoxWidget*)->checked) { + raw_value = @t(element_node->attributes->@("value"), element_node->attributes->@("value"), "on"); + } else { + raw_value = NULL; + } + break; + case WIDGET_TYPE_INPUT: + raw_value = &element_gui_widget(TextInputWidget*)->text; + break; + default: + break; + } + } else { + if (element_node->attributes->@("type") && !StrICmp(element_node->attributes->@("type"), "hidden")) { + raw_value = @t(element_node->attributes->@("value"), element_node->attributes->@("value"), ""); } - break; - case WIDGET_TYPE_INPUT: - raw_value = &element_gui_widget(TextInputWidget*)->text; - break; - default: - break; } encoded_value = @cyberia_urlencode_str(raw_value, &encoded_value_length);